Avatar billede mercutio Nybegynder
10. september 2001 - 19:50 Der er 7 kommentarer og
1 løsning

Lidt problemer med et mail program

Hej Eksperter.
Jeg er igang med at lave en bean som skal bruges til at sende breve fra min hjemmeside med.
Den virker næsten fint. Den sender brevet til rette modtager men når jeg modtager brevet så er der hverken afsender eller modtager med i headeren. Min kode ser sådan ud (lidt forenklet).

out.println(\"helo fra mig\");
            temp = in.readLine();
            System.out.println(temp);
            out.println(\"MAIL FROM:mailbean@worldonline.dk\");
            temp = in.readLine();
            System.out.println(temp);
            out.println(\"RCPT TO:mercutio@worldonline.dk\");
            temp = in.readLine();
            System.out.println(temp);
            out.println(\"DATA\");
            temp = in.readLine();
            System.out.println(temp);
            out.println(\"Indhold af brevet står her.\");
            out.println(\".\");
            temp = in.readLine();
            out.println(\"QUIT\");
            temp = in.readLine();
            s.close();
Avatar billede lens Nybegynder
10. september 2001 - 21:13 #1
Her er en lille metode jeg har lavet.... du kan nok gætte hvad der skal være i variablerne :-)

public boolean sendbesked(String fraadr, String tiladr, String afsend, String emne, String indh) {
    try{
        out.write(\"MAIL FROM:<\"+fraadr+\">\\n\");
        out.flush();
        out.write(\"RCPT TO:<\"+tiladr+\">\\n\");
        out.flush();
        out.write(\"DATA\\n\");
        out.flush();
        out.write(\"FROM:\"+afsend+\"\\nSUBJECT:\"+emne+\"\\n\"+indh+\"\\n.\\n\");
        out.flush();
        out.write(\"QUIT\\n\");
        out.flush();
        //System.out.println(\"mail sendt(måske)\\n\");
    }catch(Exception e)
    {
        System.out.println(e.getMessage());
        return false;
    }
    return true;
}
Avatar billede logical Nybegynder
11. september 2001 - 07:17 #2
Brug javaMail og jaf, så er det meget nemmere, og det er 100% compliant.

Se iøvrigt:
http://www.eksperten.dk/spm/97143
Avatar billede disky Nybegynder
11. september 2001 - 08:31 #3
Dette her er din løsning:

Den er rimelig selvforklarende synes jeg.

Du skal kun indsætte navnet på din mail server der hvor der står \'MAIL SERVER MAIL\'

Og den virker bare som den skal (jeg har ingen problemmer haft)



package mail;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.internet.InternetAddress;

public class SendMail
{
   
    String recipient = \"\";
    String url      =\"\";
    String sender    = \"\";
   
    public void setRecipient( String recipient )
    {
        this.recipient = recipient;
    }
   
    public String getRecipient()
    {
        return recipient;
    }
   
    public void setURL( String url )
    {
        this.url = url;
    }
   
    public String getURL()
    {
        return url;
    }
   
    public void setSender( String sender)
    {
        this.sender = sender;
    }
   
    public String getSender()
    {
        return sender;
    }
   
    public boolean sendMail()
    {
        boolean sendMail = true;
        String body = \"Din ven vil gerne sladre om denne side: \" + getURL();
        try
        {
            Properties props = new Properties();
            props.put(\"mail.smtp.host\", \"MAIL SERVER NAVN\");
           
            Session mailsession = Session.getDefaultInstance(props, null);
           
            Message msg = new MimeMessage(mailsession);
            msg.setFrom(new InternetAddress( getSender() ));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(getRecipient() ));
            msg.setSubject( \"Tips fra en ven\" );
            msg.setText(body);
           
            Transport.send(msg);
            return true;
        }
        catch( AddressException e )
        {
            return false;
        }
        catch( MessagingException e )
        {
            return false;
        }
    }
}
Avatar billede disky Nybegynder
11. september 2001 - 08:31 #4
okay skal det være rigtigt fint skal du i de 2 catch have

e.printStackTrace(System.out);

Så du kan se hvad der evt. gik galt.
Avatar billede mercutio Nybegynder
11. september 2001 - 09:46 #5
Tak for svarene disky og logical man kan altid regne med jer. Men uden at være helt klar over det var det faktisk lens der gav mig det jeg manglede. Jeg var ikke klar over man skulle skrive modtager og afsender i selve beskeden for at det blev vist i mailen som man modtager. Skriver du lige et svar lens?
Avatar billede disky Nybegynder
11. september 2001 - 09:50 #6
hehe

Men brug alligevel javaMail det sikre at du ikke for mange problemmer.
Avatar billede logical Nybegynder
11. september 2001 - 09:58 #7
Yep, jeg opdagede det godt nok, fordi mailheader og content header er to forskellige ting. Det har jeg også lært den hårde vej :-)
Avatar billede lens Nybegynder
11. september 2001 - 13:07 #8
Håber at det spiller nu :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Tech Lead til Datacenter Operations

IT-Universitetet i København

CIO