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

Schreibe einen Kommentar