Avatar billede luctatic Nybegynder
27. marts 2003 - 10:31 Der er 22 kommentarer og
1 løsning

JavaMail, Domain of sender

Jeg har haft en javamail opsætning til at fungere fint det ene sted, men nu hvor jeg flytter den over på et andet system, kommer en underlig fejl:

javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 553 5.1.8
<navn@domæne.dk>... Domain of sender address brugernavn@maskine does not e
xist

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at bilServer.Mail.sendMail(Mail.java:94)
        at bilServer.Main_control.getAdgangskode(Main_control.java:832)
        at bilServer.JSP_Control.getAdgangskode(JSP_Control.java:73)
        at
_jsp_0sider._sendadgangskode__jsp._jspService(_sendadgangskode__jsp.java
:38)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
        at com.caucho.jsp.Page.subservice(Page.java:497)
        at
com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182
)
        at
com.caucho.server.http.Invocation.service(Invocation.java:315)
        at
com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164
)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:536)


Det interessante ligger i toppen. Hvor den siger :
<navn@domæne.dk>... Domain of sender address brugernavn@maskine does not exist. Brugernavn er den bruger jeg er logget ind som, på den maskine den viser efter '@'. navn@domæne.dk er den mailadresse jeg prøver at sende til. Nu er spørgsmålet - hvorfor vil javamail prøve at benytte mit brugernavn/computernavn når den sender mails?

Jeg har prøvet både min ISP's smtp-server, og min egen jeg har stående derhjemme med samme held.
Avatar billede arne_v Ekspert
27. marts 2003 - 10:41 #1
Prøv og angiv en eksplicit fuld valid FROM address og se om det ikke virker.
Avatar billede arne_v Ekspert
27. marts 2003 - 10:45 #2
Altså I din kode have en:
  message.setFrom(new InternetAddress("nn@somewhere.dk"));
Avatar billede luctatic Nybegynder
27. marts 2003 - 10:52 #3
Hmmm - prøvet med min ISP's smtp-server, og min mailadresse på min ISP. Uden held dog. Sat med mail.setSender().
Avatar billede luctatic Nybegynder
27. marts 2003 - 10:59 #4
public boolean sendMail(String mailname, String servername) throws javax.mail.SendFailedException
    {
        boolean sendMail = true;
        try
        {
            Properties props = new Properties();
            props.put(mailname, servername);
            Session mailsession = Session.getDefaultInstance(props, null);
            Message msg = new MimeMessage(mailsession);
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
        msg.setFrom(new InternetAddress(sender));
            msg.setSubject(subject);
            msg.setText(body);
            Transport.send(msg);
            return true;
        }//end try
        catch (AddressException e)
        {
            System.out.println(getTimeStampNow());
            e.printStackTrace();
            return false;
        }//end catch
        catch (MessagingException e)
        {
            System.out.println(getTimeStampNow());
            e.printStackTrace();
            return false;
        }//end catch
    }//end sendMail()
Avatar billede luctatic Nybegynder
27. marts 2003 - 11:00 #5
Sådan er metoden, og så er der selvfølgelig get() og set() til alle variabler.
Avatar billede arne_v Ekspert
27. marts 2003 - 11:05 #6
Hmmm.

msg.set er RFC 822 - måske er det RFC 821 FROM vi skal have sat.

Prøv med:

props.put("mail.smtp.from", "nn@somewhere.dk");
Avatar billede luctatic Nybegynder
27. marts 2003 - 11:09 #7
Ville virke underligt hvis man skulle bruge en ældre RFC, men på den anden side virker det heller ikke *sniffle*.
Avatar billede arne_v Ekspert
27. marts 2003 - 11:16 #8
RFC 822 er ikke en erstatning for RFC 821 - de dækker to forskellig
lag af internet email.

[og så er de vistnok iøvrigt begge erstattet af nyere RFC'er, men
RFC 821 og 822 er nærmest selvstændig begreber]

Men det virker heller ikke.

Og præcis samme fejl ?
Avatar billede arne_v Ekspert
27. marts 2003 - 11:18 #9
Hov.

Det skal være:

props.put("mail.smtp.from", "<nn@somewhere.dk>");

På 821 niveau er der brackets omkring email adresser.
Avatar billede luctatic Nybegynder
27. marts 2003 - 11:21 #10
ah - men siden jeg har afsender som en variabel, skal jeg vel nærmest skrive

props.put("mail.smtp.from","<"+sender+">");

??
Avatar billede arne_v Ekspert
27. marts 2003 - 11:23 #11
Ja.
Avatar billede arne_v Ekspert
27. marts 2003 - 11:25 #12
Bemærk, at de de to afsender adresser principielt kan være
forskellige.

RFC 822 FROM (setFrom method) er det som vises i modtagerens FROM felt

RFC 821 FROM (mail.smtp.from property) er den adresse som email
returneres til hvis dne ikke kan afleveres.

[forudsat at diverse SMTP servere opfører sig som de skal, hvilket
ikek altid er tilfældet]
Avatar billede luctatic Nybegynder
27. marts 2003 - 11:25 #13
Samme fejl endnu.
Avatar billede arne_v Ekspert
27. marts 2003 - 11:28 #14
Så er jeg løbet tør for ideer.
Avatar billede luctatic Nybegynder
27. marts 2003 - 11:33 #15
:(

Sq også underligt at det virker det ene sted, men ikke det andet. Kan simpelthen ikke se hvorfor domænet skal bekymre sig om det.
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:34 #16
Ok - nu er jeg kommer ud over domæne fejlen - nu kommer en ny:

28-03-2003 10:30:33 - MessagingException: javax.mail.SendFailedException: Sending failed;
  nested exception is:
        class javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        class javax.mail.SendFailedException: 550 This address is not allowed

        at javax.mail.Transport.send0(Transport.java:218)
        at javax.mail.Transport.send(Transport.java:80)
        at bilServer.Mail.sendMail(Mail.java:101)
        at bilServer.Main_control.getAdgangskode(Main_control.java:832)
        at bilServer.JSP_Control.getAdgangskode(JSP_Control.java:73)
        at _jsp_0sider._sendadgangskode__jsp._jspService(_sendadgangskode__jsp.java:38)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
        at com.caucho.jsp.Page.subservice(Page.java:497)
        at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
        at com.caucho.server.http.Invocation.service(Invocation.java:315)
        at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
        at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
        at java.lang.Thread.run(Thread.java:536)
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:35 #17
Kan lige afsløre, at fejlen kommer i denne linie:

Transport.send(msg);
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:39 #18
Og modtager = 'olsen@tiscali.dk', og afsender = 'olsen@tiscali.dk'. Men underligt nok mener den ikke den er gyldig. :(
Avatar billede arne_v Ekspert
28. marts 2003 - 10:44 #19
Det er ikke fordi SMTP serveren du bruger på den server hvor det ikke
virker har restriktioner på hvem der må sende til hvem ?
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:49 #20
Hmmmmm, virker sådan - for da jeg ændrede til en min ISP's smptp server forsvandt fejlen. Nu begynder det efterhånden af ligne noget der minder om en løsning.
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:51 #21
Så virker det.

msg.setFrom(new InternetAddress(sender));

Var det der skulle bruges - hvorfor den så ikke virkede igår aner jeg ikke. Point til dig (igen) arne så smid lige et nyt svar.
Avatar billede arne_v Ekspert
28. marts 2003 - 10:54 #22
Jeg siger da ikke nej til point.

Men jeg ville lyve hvis jeg sagde jeg forstod hvad der er sket.
Avatar billede luctatic Nybegynder
28. marts 2003 - 10:58 #23
Jeg har mange gange opgivet at forstå ting - jeg accepterer dem bare og går videre. Der skal nok komme et nyt problem senere man kan bekymre sig om :D
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