下面的代码可以执行所需的操作,并以正确的方式进行。重读您自己在评论中发布的内容
来自:RFC2821:4.4跟踪信息
当传递SMTP服务器进行“最终传递”邮件时,它将在邮件数据的开头插入一个返回路径行。必须使用return路径;邮件系统必须支持它。返回路径行将MAIL命令中的信息保留在其中。在这里,最终传递意味着邮件已离开SMTP环境。通常,这意味着它已经传递给目标用户或相关的邮件投递,但是在某些情况下,它可能会被另一个邮件系统进一步处理和传输。
再过几行
源自消息的SMTP系统不应发送已包含返回路径标头的消息。
如果仔细阅读此内容,您将了解只有最终的smtp-server / delivery代理才应添加
Return-Path标头。作为客户端(尝试发送邮件),您应该不会这样做。最终的smtp服务器将
Return-Path标头基于信封的发件人地址(
SMTP MAILFROM部分)。
因此,设置
mail.smtp.from是告诉Java信封发件人地址应该与该
from部分不同的正确方法。
如果您在了解不同
from之处时遇到麻烦,请查看telnet
smtp会话。凡
replyto@example.com应符合
smtp.mail.from并
from@example.com到
m.addFrom(...);
telnet smtp.example.com 25 220 smtp.example.com ESMTP .....helo computername250 smtp.example.com Hello computername [123.123.123.123]mail from:<replyto@example.com>250 <replyto@example.com> is syntactically correctrcpt to:<rcpt@foo.com>250 <rcpt@foo.com> verifieddata354 Enter message, ending with "." on a line by itselfTo: Joey <to@joey.com>From: Joey <from@example.com> Subject: JoeyHey Joey!.250 OK id=....Quit
props.put("mail.smtp.from", "replyto@example.com");Session session = Session.getDefaultInstance(props, null);MimeMessage m = new MimeMessage(session);m.addFrom(InternetAddress.parse("from@example.com"));


