email exception:553 You are not authorized to send mail, authentication is required 1ef15213-7f0e-4d53-bcb9-6027ea0a73f0
在自己的电脑上可以发,部署到服务器(service 2003)出现了异常。
public class SendMail {
public static final String mailAddress = "xx@163.com";
public static final String mailCount = "xx";
public static final String mailPassword = "xxxxx";
public static final String mailServer = "smtp.163.com";
private static Logger logger = Logger.getLogger(SendMail.class);
/**
* 发送简单邮件
*
* @param str_from
* :发件人地址
* @param str_to
* :收件人地址
* @param str_title
* :邮件标题
* @param str_content
* :邮件正文
*/
public static boolean send(String str_from, String str_to,
String str_title, String str_content) {
// str_content="<a href='www.163.com'>html元素</a>"; //for testing send
// html mail!
try {
// 建立邮件会话
Properties props = new Properties(); // 用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,
// 存储发送邮件服务器的信息
props.put("mail.smtp.host", mailServer);
// 同时通过验证
props.put("mail.smtp.auth", "true");
// 根据属性新建一个邮件会话
Session s = Session.getInstance(props);
s.setDebug(true); // 有他会打印一些调试信息。
// 由邮件会话新建一个消息对象
MimeMessage message = new MimeMessage(s);
// 设置邮件
InternetAddress from = new InternetAddress(str_from); // pukeyouxintest2@163.com
message.setFrom(from); // 设置发件人的地址
//
// //设置收件人,并设置其接收类型为TO
InternetAddress to = new InternetAddress(str_to); // pukeyouxintest3@163.com
message.setRecipient(Message.RecipientType.TO, to);
// 设置标题
message.setSubject(str_title); // java学习
// 设置信件内容
// message.setText(str_content); //发送文本邮件 //你好吗?
message.setContent(str_content, "text/html;charset=gbk"); // 发送HTML邮件
// //<b>你好</b><br><p>大家好</p>
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
// 发送邮件
Transport transport = s.getTransport("smtp");
// 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
transport.connect(mailServer, mailCount, mailPassword);
// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
logger.error("email exception:"+e.getMessage());
e.printStackTrace();
return false;
}
return true;
}
}
------解决方案--------------------
用的发件人不是163邮箱吧。
------解决方案--------------------
认证的
------解决方案--------------------
应该你公司用来发送邮件的认证不是163邮箱吧!把mailServer?改成公司用的邮箱试试呢??