try {
String MY_EMAIL_ACCOUNT = "*********@163.com";
String MY_EMAIL_PASSWORD = "*****";// 密码或者是你自己的设置的授权码
// SMTP服务器(这里用的163 SMTP服务器)
String MEAIL_163_SMTP_HOST = "smtp.163.com";
String SMTP_163_PORT = "25";// 端口号,这个是163使用到的;
// 收件人
String RECEIVE_EMAIL_ACCOUNT = "*********@163.com";
Properties p = new Properties();
p.setProperty("mail.smtp.host", MEAIL_163_SMTP_HOST);
p.setProperty("mail.smtp.port", SMTP_163_PORT);
p.setProperty("mail.smtp.socketFactory.port", SMTP_163_PORT);
p.setProperty("mail.smtp.auth", "true");
p.setProperty("mail.smtp.socketFactory.class", "SSL_FACTORY");
Session session = Session.getInstance(p, new Authenticator() {
// 设置认证账户信息
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(MY_EMAIL_ACCOUNT, MY_EMAIL_PASSWORD);
}
});
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
// 发件人
message.setFrom(new InternetAddress(MY_EMAIL_ACCOUNT));
// 收件人和抄送人
message.setRecipients(Message.RecipientType.TO, RECEIVE_EMAIL_ACCOUNT);
message.setRecipients(Message.RecipientType.CC, MY_EMAIL_ACCOUNT); //重点:最好写这个抄送,不然大概率会被当成垃圾邮件!!
// 内容(这个内容还不能乱写,有可能会被SMTP拒绝掉;多试几次吧)
message.setSubject("happy");
message.setText("let's go party");
message.setSentDate(new Date());
message.saveChanges();
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
PS:主题内容最好不要带test之类的,很容易被163当成垃圾邮件。最好加上抄送自己,这样垃圾邮件的概率比较低。
邮件如果被退信,可以通过下面的链接,查找对应错误的原因
http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html