JavaMail - 退回邮件( Bounced Messages)

由于多种原因,可以退回邮件。 rfc1211深入讨论了这个问题。 只有服务器才能确定是否存在特定邮箱或用户名。 当服务器检测到错误时,它将向原始消息的发送方返回一条消息,指示失败的原因。

有许多Internet标准涵盖了传递状态通知,但是大量服务器不支持这些新标准,而是使用ad hoc技术来返回此类故障消息。 因此,将bounced消息与导致问题的原始消息相关联变得非常困难。

JavaMail包括对解析传递状态通知的支持。 有许多技术和启发式方法可以解决这个问题。 其中一种技术是可变包络返回路径。 您可以在信封中设置返回路径,如下例所示。 这是发送退回邮件的地址。 您可能希望将其设置为与From:标头不同的通用地址,以便处理远程反弹。 这是通过在JavaMail中设置mail.smtp.from属性来完成的。

创建Java类 (Create Java Class)

创建一个java类文件SendEmail ,其内容如下:import java.util.Properties;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class SendEmail {

public static void main(String[] args) throws Exception {

String smtpServer = "smtp.gmail.com";

int port = 587;

final String userid = "youraddress";//change accordingly

final String password = "*****";//change accordingly

String contentType = "text/html";

String subject = "test: bounce an email to a different address " +

"from the sender";

String from = "youraddress@gmail.com";

String to = "bouncer@fauxmail.com";//some invalid address

String bounceAddr = "toaddress@gmail.com";//change accordingly

String body = "Test: get message to bounce to a separate email address";

Properties props = new Properties();

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.starttls.enable", "true");

props.put("mail.smtp.host", smtpServer);

props.put("mail.smtp.port", "587");

props.put("mail.transport.protocol", "smtp");

props.put("mail.smtp.from", bounceAddr);

Session mailSession = Session.getInstance(props,

new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(userid, password);

}

});

MimeMessage message = new MimeMessage(mailSession);

message.addFrom(InternetAddress.parse(from));

message.setRecipients(Message.RecipientType.TO, to);

message.setSubject(subject);

message.setContent(body, contentType);

Transport transport = mailSession.getTransport();

try {

System.out.println("Sending ....");

transport.connect(smtpServer, port, userid, password);

transport.sendMessage(message,

message.getRecipients(Message.RecipientType.TO));

System.out.println("Sending done ...");

} catch (Exception e) {

System.err.println("Error Sending: ");

e.printStackTrace();

}

transport.close();

}// end function main()

}

在这里我们可以看到属性mail.smtp.from的设置与from地址不同。

编译和运行 (Compile and Run)

现在我们的课已经准备好了,让我们编译上面的类。 我已将类SendEmail.java保存到目录: /home/manisha/JavaMailAPIExercise 。 我们需要在类路径中使用jars javax.mail.jar和activation.jar 。 执行以下命令从命令提示符编译类(两个jar放在/ home/manisha /目录中):javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmail.java

现在编译了类,执行以下命令来运行:java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmail

验证输出 (Verify Output)

您应该在命令控制台上看到以下消息:Sending ....

Sending done ...

JavaMail - 配额管理( Quota Management)

java mail 回复邮件_JavaMail - 退回邮件( Bounced Messages)相关推荐

  1. java mail 回复邮件_JavaMail 电子邮件答复/回复

    在本章中,我们将看到如何使用JavaMail API来回复电子邮件.接着在下面的程序中的列出基本步骤: 获取Session对象与POP和SMTP服务器的细节属性.我们需要POP 细节来检索信息和SMP ...

  2. Java实战-用Java mail实现Exchange发邮件给你喜欢的人

    目录 1. 官方指导文章 2. 需要用到com.microsoft.ews-java-api 2.1 maven中添加 2.2 gradle中添加 3. 完整代码:新建一个MailUtil.java类 ...

  3. Java mail模板发送高级邮件(二)

    Java mail模板发送高级邮件 一.见贤思齐焉   我们之前自己发的邮件,大家又没有感觉比较丑呢???毫无美感可言,只有空洞的文字,甚至连基础的排版都没有.如果这是给女娃表白的邮件,那我只能陪你一 ...

  4. java mail 发送邮件_JavaMail实现收发邮件——(二)发送邮件

    一.导入jar包: 将mail.jar和activation.jar导入到项目中(eclipse中:点击项目名,鼠标右键-->Build Path-->Configure Build Pa ...

  5. java eml解析_javamail 收邮件 解析eml文件

    内容来自:http://www.oschina.net/bbs/thread/528 以下代码经过测试了的能通过 我在用javaMail做收邮件时怎么邮件内容重复(一种文本格式的,一种html格式的) ...

  6. java mail张_javaMail操作QQ邮箱发送邮箱 Demo

    最近用到想给项目中加一个功能,就是当项目中某些模块发生异常,在捕获异常后不仅仅写日志抛异常等!还要追加一个发送邮件给该模块的负责人,方便运维定位问题: maven管理的配置: javax.mail m ...

  7. java收发邮寄_JavaMail收发邮件的一般流程与主要方法

    1.Properties属性类 Properties p = new Properties(); p.put(key, value); key-| mail.smtp.host -| mail.smt ...

  8. java velocity 邮件_邮件集成java mail + 读取邮件模板

    项目做异地登录提醒功能,通过java mail发送邮件.读取邮件模板sendMail.vm文件. 1.邮件发送 import java.io.StringWriter; import java.uti ...

  9. 邮件集成java mail + 读取邮件模板

    项目做异地登录提醒功能,通过java mail发送邮件.读取邮件模板sendMail.vm文件. 1.邮件发送 import java.io.StringWriter; import java.uti ...

最新文章

  1. 使用selenium和pyquery爬取京东商品列表
  2. boost::log模块实现loging到 syslog 服务器的示例
  3. [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
  4. java undo_用JAVA实现Undo、Redo,Copy、Paste、Cut_java
  5. retrofit2.6.0_RxAndroid和Retrofit 2.0
  6. c malloc结构体_9.8 C++动态分配 | 存放结构体变量
  7. 高效java工具类总结
  8. How does RECORDLENGTH affect your exp speed?
  9. 不可阻挡的PowerShell :Red Teamer告诉你如何突破简单的AppLocker策略
  10. 一图看懂经典面试题——左外连接,右外连接,内连接的区别
  11. 国讯之MTK Ralink方案GPIO驱动介绍
  12. word应用:快速删除页眉横线
  13. python逻辑回归模型建模步骤_Python逻辑回归——建模-评估模型
  14. 视频会议软件的使用形式
  15. 【微信小程序】选择器组件picker
  16. 2022年下半年软件设计师考试下午真题(专业解析+参考答案)
  17. 用友t6服务器端操作系统,用友t6远程服务器
  18. android jnl的mk文件,动态语言与静态语言
  19. Unity3D音频的制作
  20. vs为什么打了断点不断_2019年亚洲羽毛球锦标赛半决赛焦点对阵:陈雨菲vs山口茜 德查波/莎西丽vs王懿律/黄东萍 周天成vs石宇奇...

热门文章

  1. 《算法竞赛中的初等数论》(一)正文 0x00整除、0x10 整除相关(ACM / OI / MO)(十五万字符数论书)
  2. 制作用于图像语义分割训练的标签数据【图像分割】【labelme】
  3. 微信调用扫一扫功能实现
  4. #torch.bmm()函数解读
  5. 关于Quartus II 13.0破解失败问题
  6. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4地面站立动作状态机详解
  7. 【NISP一级】2.2 身份鉴别与访问控制
  8. Cloud Compare快速大规模配准
  9. 2021年教你增加拿到BAT等大厂offer几率,分享PDF高清版
  10. 【原创】xenomai+linux双内核下的时钟管理机制