Nous avons essayé d'envoyer du courrier en utilisant javax.mail
. Lors de l'envoi des mails nous avons eu l'exception suivante:
**sendMail - Message Sending Failed: Invalid Addresses;
nested exception is:
javax.mail.SendFailedException: 550 #5.1.0 Address rejected.2013-02-28 13:17:08,236**
Quel pourrait être le problème?
Cela signifie que le serveur de réception ne reconnaît pas la boîte aux lettres (la partie précédant le «@») de l'adresse de messagerie. Il se peut qu’il ait été mal orthographié, qu’il s’agisse simplement d’un nom inexistant ou même que le serveur destinataire soit configuré pour rejeter un message (spam, par exemple) en répondant avec le code 550.
Voici l'une des nombreuses pages qui résument les codes de réponse SMTP et fournit des liens vers divers RFC pertinents: http://www.greenend.org.uk/rjk/tech/smtpreplies.html.
EDIT: Il me faut un peu plus d’espace pour répondre à votre question que ne le permettent les commentaires.
@RaghuKing, si vous regardez la Javadoc pour javax.mail.SendFailedException
, vous remarquerez que vous pouvez appeler 3 méthodes sur un tel objet exception (à l'intérieur du bloc catch
):
getInvalidAddresses()
pour obtenir un tableau d'adresses non valides et donc non envoyées à,getValidSentAddresses()
pour obtenir un tableau d'adresses auxquelles ce message a été envoyé avec succès, etgetValidUnsentAddresses()
pour obtenir un tableau d'adresses valides mais auxquelles le message n'a pas été envoyé. (Évidemment, si l’on envoie un message à plusieurs destinataires, certains peuvent réussir et d’autres échouer, mais l’exception est levée s’il ya au moins un échec, quel que soit le nombre de succès. Évidemment, même si vous n’envoyez qu’une seule adresse, vous aura cette seule adresse dans un seul de ces tableaux et ne sera probablement PAS dans la liste ValidSent .
Ces tableaux vous donneront plus d'informations sur la gestion de l'exception, en fonction du type de tableau dans lequel se trouve une adresse. Cela dépend évidemment de votre application, mais il peut s'agir de suggestions raisonnables:
Mais à la fin, c’est à vous d’appliquer le bon sens et d’expérimenter un peu les fonctions que vous ne comprenez pas tant que vous ne les avez pas comprises.
Avait connu cette même exception. J'ai réalisé que je ne pouvais pas envoyer de courrier électronique à des utilisateurs inconnus. Après consultation, j'ai découvert que notre serveur SMTP n'était pas un serveur de relais de messagerie ouvert en lecture Open mail Relay .