Problème de configuration du Printemps MailSender pour notre serveur SMTP (mais GMail fonctionne)

J'ai quelques problèmes pour envoyer des mails via SMTP à l'aide du Printemps MailSender de l'interface et la mise en œuvre concrète JavaMailSenderImpl. Je suis en mesure d'envoyer des mail via GMail, mais pas par le biais de notre société SMTP-server (Postfix).

Corriger les configurations

De voir que j'ai la bonne configuration que j'ai utilisé l'excellente mail de l'expéditeur ssmtp. C'est un utilitaire simple (qui est capable d'émuler Sendmail), et sont utilisées uniquement pour l'envoi de mail via SMTP.

Ci-dessous sont les deux commandes que j'ai utilisé pour envoyer du courrier. Le premier est pour GMail et l'autre pour notre société SMTP-serveur. Les deux mails sont arrivés comme ils le devraient, et donc les fichiers de configuration qui suivent sont corrects.

$ ssmtp -C gmail-smtp.conf john.doe@gmail.com < gmail-message.txt 
$ ssmtp -C other-smtp.conf john.doe@thecompany.net < other-message.txt

Le contenu de la ssmtp fichiers de configuration et les fichiers de messages sont listés ci-dessous. Comment le fichier de configuration est structuré peut être vu à: 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.

autres-smtp.conf:

# No username or password = no authentication
hostname=thecompany.net
mailhub=mail.thecompany.net:25

MailSender configuration qui fonctionne contre GMail

Je suis réussie à l'envoi de mail via GMail à l'aide de ce Printemps MailSender configuration:

...
<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>
...

Le problème (de l'envoyer par la société SMTP-server)

Avec cette MailSender configuration:

...
<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
    <property name="host" value="mail.thecompany.net" />
    <property name="port" value="25" />
</bean>
...

- Je obtenir cette 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)    

Je aussi obtenir 504 5.5.2 : commande Helo rejeté: nom fqdn si je supprime hostname=thecompany.net de autres-smtp.conf à l'aide de ssmtp. Je suppose que je dois fournir le nom d'hôte d'une certaine manière. Mes ordinateurs nom est rat, mais il semble comme il veut thecompany.net.

Toute aide appréciée!

OriginalL'auteur | 2009-05-12