java mail开发邮件系统,如何判断邮件是否发送成功

MIT的梦 软件工程师  2014-06-27 02:32:02
本人最近在做一个项目,需要先获取到数据库的邮箱,然后在发送邮件,用到了java mail开发。
但有个需求,就是发送邮件后我需要知道邮件是否发送成功,现在卡在这里。从好多网站查阅资料都只能通过try catch来捕捉异常
才能知道是否发送成功。
我自己的想法是通过发送前,通过mx的记录,然后telnet到对方的邮件服务器,发送命令,查看返回值来判断。

不知各位有什么好的方法?
...全文
1965 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
reyoreyoreyo 2016-09-28
JavaMail发送邮件时判断发送结果1.5.x 经常有用户在平台乱注册帐号,系统得自动清理。现在要判断一下邮件是否正确少了很多垃圾注册用户了。 测试 http://sms.reyo.cn/user/register 感谢您的反溃信息!!! 程序代码的实现: http://www.cnblogs.com/interdrp/p/5912723.htmlhttp://www.cnblogs.com/interdrp/p/5912723.html
回复
wcf2010 2016-04-11
Properties props = new Properties(); // 开启debug调试 props.setProperty("mail.debug", "true"); Session session = Session.getInstance(props); session.setDebug(true); 这样就能够看到状态码了。
回复
wcf2010 2016-04-11
File f=new File("d:/1.txt"); if(!f.exists()) { try { f.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } PrintStream ps=null; try { ps = new PrintStream(new FileOutputStream(f)); session.setDebugOut(ps); } catch (FileNotFoundException e) { e.printStackTrace(); } byte[] bs=new byte[1021]; try { ps.write(bs); } catch (IOException e) { e.printStackTrace(); } ps.close(); 把会话日志存入到一个文件里面,在这里面包含了每一个邮件地址的发送情况。可以解析这个1.txt。得到每封邮件的状态。 RCPT TO:<aa@163.com> 250 Mail OK
回复
baidu_31555009 2015-10-09
有实际的例子吗?
回复
来到我身边 2015-06-12
我使用的javax.mail的send方法发送的邮件,但是这个方法没有返回值,现在使用隐藏图片实现了探测发送的邮件是否被用户读取了,但是要怎么才能知道我的邮件是否发送出去了呢
引用 16 楼 zy353003874 的回复:
[quote=引用 11 楼 ltyisangel 的回复:] [quote=引用 8 楼 zy353003874 的回复:] 应该只能得到你发给服务器是否成功吧!要是确定发给用户是否接收到的话,很有难度哟,不过以前我遇到过,你可以试一试放一张隐藏的图片,当然要小点哈,这样用户接受到你的邮件之后,肯定会给服务器发请求,这样你就可以通过这个来判断是否接收到了,一点小小见解
有道理的,我现在不知道如何写代码获得返回值呢?[/quote] 你可以看看API,或者是通过返回值吧,一般你发送了一个信息之后会有返回值的吧![/quote]
回复
来到我身边 2015-06-12
Lz你是怎么做的哈?能不能指点一下哈?
回复
来到我身边 2015-06-12
我使用隐藏小图片实现了发送的邮件是否被读,但是要怎么确定发给用户的邮件是否接收到呢?或者说怎么知道我发给用户的信息是否发送出去了?
引用 8 楼 zy353003874 的回复:
应该只能得到你发给服务器是否成功吧!要是确定发给用户是否接收到的话,很有难度哟,不过以前我遇到过,你可以试一试放一张隐藏的图片,当然要小点哈,这样用户接受到你的邮件之后,肯定会给服务器发请求,这样你就可以通过这个来判断是否接收到了,一点小小见解
回复
zy_think123 2014-07-07
引用 11 楼 ltyisangel 的回复:
[quote=引用 8 楼 zy353003874 的回复:] 应该只能得到你发给服务器是否成功吧!要是确定发给用户是否接收到的话,很有难度哟,不过以前我遇到过,你可以试一试放一张隐藏的图片,当然要小点哈,这样用户接受到你的邮件之后,肯定会给服务器发请求,这样你就可以通过这个来判断是否接收到了,一点小小见解
有道理的,我现在不知道如何写代码获得返回值呢?[/quote] 你可以看看API,或者是通过返回值吧,一般你发送了一个信息之后会有返回值的吧!
回复
MIT的梦 2014-07-06
引用 12 楼 shine333 的回复:
[quote=引用 10 楼 ltyisangel 的回复:] [quote=引用 7 楼 youxiaoyue 的回复:] 都有状态返回的吧,之前做过,记不清了!
关键是具体如何获得到返回值?[/quote] 关键是你用的什么类库,还是自己写的?[/quote] java mail
回复
MIT的梦 2014-07-06
引用 13 楼 shine333 的回复:
另外,我们说的成功,都只是你和你的SMTP之间的交互成功。
恩我说的也是SMTP
回复
shine333 2014-07-06
另外,我们说的成功,都只是你和你的SMTP之间的交互成功。
回复
shine333 2014-07-06
引用 10 楼 ltyisangel 的回复:
[quote=引用 7 楼 youxiaoyue 的回复:] 都有状态返回的吧,之前做过,记不清了!
关键是具体如何获得到返回值?[/quote] 关键是你用的什么类库,还是自己写的?
回复
MIT的梦 2014-07-06
引用 8 楼 zy353003874 的回复:
应该只能得到你发给服务器是否成功吧!要是确定发给用户是否接收到的话,很有难度哟,不过以前我遇到过,你可以试一试放一张隐藏的图片,当然要小点哈,这样用户接受到你的邮件之后,肯定会给服务器发请求,这样你就可以通过这个来判断是否接收到了,一点小小见解
有道理的,我现在不知道如何写代码获得返回值呢?
回复
MIT的梦 2014-07-06
引用 7 楼 youxiaoyue 的回复:
都有状态返回的吧,之前做过,记不清了!
关键是具体如何获得到返回值?
回复
shine333 2014-07-03
不清楚你用的什么API,反正根据协议,你发送之后当然会有返回状态码,判断是否收到正确的返回值(一般是250)即可啊。
回复
zy_think123 2014-07-03
应该只能得到你发给服务器是否成功吧!要是确定发给用户是否接收到的话,很有难度哟,不过以前我遇到过,你可以试一试放一张隐藏的图片,当然要小点哈,这样用户接受到你的邮件之后,肯定会给服务器发请求,这样你就可以通过这个来判断是否接收到了,一点小小见解
回复
清晨v 2014-07-03
都有状态返回的吧,之前做过,记不清了!
回复
貌似有返回值吧
回复
MIT的梦 2014-06-30
引用 3 楼 rui888 的回复:
163 发邮箱的时候会提示,邮件发送到服务器,发送成功的信息。 你这个应该也可以。
我的是公司内部邮箱,如何获得信息呢?
回复
MIT的梦 2014-06-30
我的是公司内部邮箱,如何获得信息呢?
回复
加载更多回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.7w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2014-06-27 02:32
社区公告
暂无公告