How can I recieive confirmation for delivered email with JavaMail API?

寵の児 提交于 2019-11-28 23:31:59

There is no standard way of doing this that's accepted and honored across the board. I see that you have some options, though:

  • Add a header "Return-Receipt-To" with your e-mail address in the value. If the recipient of the e-mail has a client which honors this header, then a return receipt will be sent to you when the e-mail is opened. This is not reliable, mind you, as the user can always decide not to send the receipt, even if he has a client that supports it.

  • Add an image into your e-mail that loads from your server and put a parameter on the image that includes the user's e-mail address. When the e-mail loads, the image will load from your server. Write a script that collects the e-mail parameter and then delivers a blank image. This is also not reliable, however, as many mail clients prompt users if they wish to download images and they can always choose not to. Also, some (mostly older) e-mail clients do not support images.

  • Perhaps the most reliable way is not to include the message in your e-mail at all. Include only a link to a website where the message can be read, and include their e-mail address or a unique code in the link. This way, you know exactly who read the message. Of course, this has the downside that people aren't actually getting the message in their inbox, and they also may choose not to go to the website to read it.

Ultimately, I think you're going to have to come up with a creative solution to solve this problem, unless you're happy getting spotty results.

Ok, this is an old discussion, but:

I've found a simple and working solution here (link in spanish).

You just need to add one more field to the header of the message. To achieve this you must use method addHeader of Part class, implemented by Message class. This method receives 2 parameters, type and value of header.

To get confirmation you must add this header:

Disposition-Notification-To

And the value is the mail where we want to send the confirmation answer:

message.addHeader("Disposition-Notification-To","mail@example.com");

ATTENTION: be aware that, nowadays, a lot of mail servers like gmail are discarding this requests, so this will not have effect, but, if you are sure (like me) receiver server allows this, will work like a charm.

Doon

please see my answer here (when this questioned was asked about ruby on rails). Tis basically the same answer.

Email open notification - ruby on rails

There is another approach to finding out whether an email has been received or not, it's getting undelivered emails. I've seen a rather good Java implementation here.

They used javax.mail (for mail processing) and guava (for processing strings and collections).

Just add a dummy image with display set to none in your message.And set the src attribute of this image to the url you want to call

oyo

You can use SMTP message and request for a delivery status (I don't know if it's coming when the provider receive the mail or if it's when the user open the mail). JavaMail don't support directly these feature directly and you have to read the RFC 3464. I also find this thread with examples but didn't try it javamail

You can also look at websina

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!