2017-10-05 8 views
0

J'utilise Javamail pour me connecter à un service de messagerie AWS; J'ai testé que je peux recevoir des courriels à l'aide de ce code, mais j'aimerais également obtenir une réponse avec des données sur l'e-mail envoyé, comme l'ID de message, qu'AWS utilise pour identifier un message de façon unique.Comment obtenir une réponse SMTP en utilisant Javamail

J'utilise MimeMessage pour créer un e-mail et je vous envoie avec ce code dans un bloc catch try:

transport.sendMessage(message, message.getAllRecipients) 

Ce code juste Déclenché un e-mail au serveur AWS et je ne peux pas récupérer les métadonnées Existe-t-il un moyen d'écouter une réponse pour voir si le message a réussi afin que je puisse récupérer l'ID de message?

+0

Cela ne fait pas partie de la spécification SMTP, donc non - le serveur n'envoie pas cette information à l'émetteur. –

+0

En effet. Avez-vous vérifié avec ce message que les métadonnées sont retournées à l'expéditeur? Le SMTP ordinaire n'est pas très verbeux mais, pour autant que je sache, Amazon pourrait avoir une extension. Si c'est le cas, le protocole SMTP est si simple qu'il n'est pas si difficile d'envoyer un message en utilisant des sockets Java. JavaMail définit un 'TransportListener', mais je doute qu'il capture des données qui ne sont pas génériques dans SMTP. –

+0

Oui l'email envoyé contient les métadonnées dont j'ai besoin. Merci à tous, je vais regarder dans l'utilisation de l'alternative de messagerie API que fournit AWS. – DarthBinks911

Répondre

0

Si la méthode sendMessage est renvoyée, le serveur a accepté le message. Notez que that doesn't necessarily mean it will be delivered to the recipient, cependant. Mais à ce stade, vous pouvez utiliser la méthode getMessageID pour récupérer l'ID du message.

Si la méthode send renvoie une exception, le serveur a refusé d'accepter le message pour une raison quelconque et il ne sera pas envoyé.

+0

Cela fonctionne, mais j'ai regardé l'identification de message générée par AWS et c'est différent. J'ai donc besoin de trouver un moyen d'obtenir cette identification à la place. Merci quand même. – DarthBinks911

+0

Parlez-vous de l'en-tête Message-ID dans le message que le destinataire reçoit? Si AWS réécrit l'en-tête Message-ID lors de l'envoi du message qu'il ne devrait pas faire, je ne sais pas comment obtenir cette information. S'il inclut ces informations dans le code de réponse SMTP, il est possible de surveiller les réponses SMTP à l'aide de JavaMail. Pouvez-vous publier la [sortie de débogage JavaMail] (https://javaee.github.io/javamail/FAQ#debug) en affichant la réponse SMTP avec le Message-ID? –