Problem mit der Konfiguration von Spring MailSender für unseren SMTP-server (aber GMail funktioniert)
Ich habe einige Probleme beim versenden der mails über SMTP und die Verwendung von Spring MailSender - Schnittstelle und der konkreten Umsetzung JavaMailSenderImpl. Ich bin in der Lage, zum senden von Nachrichten über GMail, aber nicht durch unsere Unternehmens-SMTP-server (Postfix).
Richtigen Konfigurationen
Zu sehen, dass ich die richtige Konfiguration, die ich verwendet, die ausgezeichnete E-mail-Absender ssmtp. Es ist ein einfaches Dienstprogramm (das ist in der Lage zu emulieren, Sendmail) und ist ausschließlich für das senden von mail über SMTP.
Unten sind die zwei Befehle, die ich verwendet, um E-mail senden. Die erste ist für GMail und die andere für unser Unternehmen SMTP-server. Beide mails kamen, wie Sie sollten und damit die Konfigurationsdateien, die Folgen, sind richtig.
$ ssmtp -C gmail-smtp.conf john.doe@gmail.com < gmail-message.txt
$ ssmtp -C other-smtp.conf john.doe@thecompany.net < other-message.txt
Den Inhalt der ssmtp Konfigurations-Dateien und der Meldung Dateien werden unten aufgeführt. Wie die Konfigurationsdatei aufgebaut ist kann hier angesehen werden: http://linux.die.net/man/5/ssmtp.conf:
gmail-message.txt:
To: john.doe@gmail.com
From: john.doe@gmail.com
Subject: Sent using the SMTP-server of GMail
Some content.
gmail-smtp.conf:
mailhub=smtp.gmail.com:587
UseSTARTTLS=yes
AuthUser=john.doe@gmail.com
AuthPass=john_password
other-message.txt:
To: john.doe@thecompany.net
From: john.doe@thecompany.net
Subject: Sent using the SMTP-server of TheCompany
Some content.
anderen-smtp.conf:
# No username or password = no authentication
hostname=thecompany.net
mailhub=mail.thecompany.net:25
MailSender-Konfiguration, die gegen GMail
Bin ich erfolgreich E-Mails senden über GMail mit diesem Frühjahr MailSender-Konfiguration:
...
<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="[email protected]" />
<property name="password" value="john_password" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
...
Des Problems (senden über die Unternehmens-SMTP-server)
Mit diesem MailSender-Konfiguration:
...
<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
<property name="host" value="mail.thecompany.net" />
<property name="port" value="25" />
</bean>
...
Bekomme ich diese exception:
org.springframework.mail.MailSendException; nested exceptions (1) are:
Failed message 1: javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 504 5.5.2 <rat>: Helo command rejected: need fully-qualified hostname
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:422)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:308)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:297)
... (The rest are methods I've created, which are irrelevant)
Ich auch bekommen 504 5.5.2 : Helo command rejected: need fully-qualified hostname wenn ich entfernen hostname=thecompany.net von anderen-smtp.conf Verwendung ssmtp. Ich denke, ich muss geben Sie den Hostnamen irgendwie. Mein Computer name ist Ratte aber es scheint, wie es will thecompany.net.
Jegliche Hilfe dankbar!
InformationsquelleAutor | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, fügen Sie der Eigenschaft "E-mail.smtp.localhost" mit dem richtigen Wert (thecompany.net).
InformationsquelleAutor Karimchik
Hinzufügen die vorherigen Antwort von matt b, die richtige option von der javamail ist
smtp.mail.localhost
InformationsquelleAutor sinarf
Können Sie die zusätzlichen Eigenschaften (hostname), die Sie benötigen, um mit Ihrem SMTP-server in der
javaMailProperties
Eigenschaft?Nicht ganz sicher, was der richtige Schlüssel ist name ist für
hostname
in der JavaMail-API.InformationsquelleAutor matt b
Ich denke, der ein address resolution problem in Ihrem Fall. stellen Sie sicher, dass der mail-server erreichbar ist mit dem angegebenen Namen aus der Maschine, die Sie bereitgestellt haben diesen code auf. wenn Sie nicht nur einen Eintrag hinzufügen, um Ihr die hosts-Datei.
InformationsquelleAutor MahdeTo
SMTPTransport mailFrom() legt die Absender-Adresse in der folgenden Reihenfolge:
Brauchen Sie nur auf Eigenschaft hinzufügen
from
imjavaMailProperies
Ihre E-Mail-AdresseInformationsquelleAutor desmondev