Javamail 发送邮件的问题

magictxh123 2005-12-08 12:54:41
当我使用Javamail发送邮件时,通过SMTP认证的是用户A,但是发信人是B,当发信的时候产生一个异常,提示Your envelope sender is different from the authuser,这个问题如何解决?请各位帮忙,谢谢。
String smtpServer = "smtpServer";//smtp服务器
String smtpAuth = "true";//smtp服务器是否需要进行验证
String smtpUser = "authUser";//smtp分配的用户名(就是你的E-Mail地址中@符号前面部分)
String smtpPassword = "pass";//登陆口令
String from = "sender";//用于在对方收到的邮件中作为发送人地址显示
String to = mailTo;//邮件需要发送到的目标邮件地址
String subject = mailSubject;//邮件主题
String text = mailBody;//邮件体,在这里是邮件正文
Properties props = new Properties();//构造Properties,作为后面的Session参数容器
Session sendMailSession;
Transport transport;
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth", smtpAuth);
if ("true".equals(smtpAuth)) {
//如果smtp服务器需要验证,则构建AuthertiactorUtil用于mail session的创建
AuthenticatorUtil authutil = new AuthenticatorUtil(smtpUser, smtpPassword);
sendMailSession = Session.getInstance(props, authutil);
}
else {
sendMailSession = Session.getInstance(props);
}

//设置是否是调试状态,如果这里设置为true的话,则会在控制台输出发送过程,输出信息类似于在telnet上发送邮件
sendMailSession.setDebug(true);
//初始化邮件消息
Message message = new MimeMessage(sendMailSession);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(mailTo));
message.setSubject(subject);
message.setSentDate(new Date());
message.setText(text);
message.saveChanges();
transport = sendMailSession.getTransport("smtp");//此次会话是发送邮件(smtp)
transport.send(message, message.getAllRecipients());//从这里可以看出来,可以设置多个发送目的地址
transport.close();
...全文
145 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzjackie 2005-12-10
  • 打赏
  • 举报
回复
学习....
xwsn 2005-12-08
  • 打赏
  • 举报
回复
up
rickhunterchen 2005-12-08
  • 打赏
  • 举报
回复
现在的邮件服务器都基本禁止了匿名发送。
zealVampire 2005-12-08
  • 打赏
  • 举报
回复
以前好像看到一篇文章说超级终端 可以这样发匿名邮件的。
zealVampire 2005-12-08
  • 打赏
  • 举报
回复
呵呵 那不就成了匿名邮件了?
magictxh123 2005-12-08
  • 打赏
  • 举报
回复
帮忙呀,各位,自己UP一下。
适用人群通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。课程概述通用各大网易系,腾讯QQ系,新浪系,阿里系等主流邮箱;同时也适用于企业开发的企业邮箱,进行收件和发件。POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。   SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。。【开发者如何进行快速开发邮件发送系统???本课程系统进行快速研发,项目实战】 部分截图如下:完整版请查看课件或者视频

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧