62,614
社区成员
发帖
与我相关
我的任务
分享
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. n6sm2296378wag.39
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.cdjj.y2t034.mavk.email.FindPwdEmail.SendMail(FindPwdEmail.java:58)
at com.cdjj.y2t034.mavk.email.FindPwdEmail.main(FindPwdEmail.java:87)
package com.cdjj.y2t034.mavk.email;
import java.util.Calendar;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
/**
* 发送电子邮件的类
* 功能:提供用户通过电子邮件找回密码
* 时间:2009年5月27日
* 地点:望平街(home)
* 作者:mavk
* @author mavk
*
*/
public class FindPwdEmail {
private String E_from = "liu3232wei@gmail.com";// 发件人地址
private String E_smtp = "smtp.gmail.com";// 邮件发送服务器(smtp)
private String E_user = "liu3232wei"; // 登录用户名
private String E_password = "********";// 登录密码
public FindPwdEmail() {
}
public boolean SendMail(String E_to, String E_title, String E_content) {
try {
Transport transport;
Properties props = new Properties();
props.put("mail.smtp.host", E_smtp);// 设置smtp主机
props.put("mail.smtp.auth", "true");// 使用smtp身份验证
props.put("mail.smtp.prot", "465");
Authenticator pauth = new passauth(E_user, E_password);
Session mySession = Session.getInstance(props, pauth);
Message mimeMsg = new MimeMessage(mySession);// 创建MIME邮件对象
mimeMsg.setFrom(new InternetAddress(E_from));// 设置发件人地址
mimeMsg.setRecipient(Message.RecipientType.TO, new InternetAddress(E_to));//设置收件人地址
mimeMsg.setSubject(E_title);// 设置邮件主题
mimeMsg.setSentDate(new Date());// 设置发送日期
MimeBodyPart part = new MimeBodyPart();// mail内容部分
part.setText(E_content);
part.setContent(E_content.toString(), "text/html;charset=gb2312");// 设置邮件格式为html
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(part);// 在 Multipart 中增加mail内容部分
mimeMsg.setContent(multipart);// 增加 Multipart 到信息体
// mimeMsg.setText(E_content);
transport = mySession.getTransport("smtp");
Transport.send(mimeMsg);// 发送邮件 transport.send(mimeMsg);/
System.out.println("发送成功");
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
private class passauth extends Authenticator {
private String authUser = "";
private String authPwd = "";
public passauth(String username, String password) {
authUser = username;
authPwd = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.authUser, this.authPwd);
}
}
// 主函数,调试用的,
public static void main(String[] args) {
Calendar rightNow = Calendar.getInstance();
System.out.println("开始的时候" + rightNow.getTime());
FindPwdEmail mail = new FindPwdEmail();
mail.SendMail("liu3232wei@126.com", "javamail发的信",
"用javamail发的信。现在测试。请配合,哈哈");
Calendar rightNow1 = Calendar.getInstance();
System.out.println("结束的时候" + rightNow1.getTime());
}
}
import java.util.Date;
import java.util.Properties;
import javax.servlet.*; //此句报错误的话请注释
import javax.mail.Session;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Message;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
import javax.mail.Transport;
public class javaMail {
private Properties properties;
private Session mailSession;
private MimeMessage mailMessage;
private Transport trans;
public javaMail() {
}
public void sendMail() {
try {
properties = new Properties();
//设置邮件服务器
properties.put("mail.smtp.host", "smtp.sina.com");
//验证
properties.put("mail.smtp.auth", "true");
//根据属性新建一个邮件会话
mailSession = Session.getInstance(properties,
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xnjnmn@sina.com",
"*******");
}
});
mailSession.setDebug(true);
//建立消息对象
mailMessage = new MimeMessage(mailSession);
//发件人
mailMessage.setFrom(new InternetAddress("xnjnmn@sina.com"));
//收件人
mailMessage.setRecipient(MimeMessage.RecipientType.TO,
new InternetAddress("xnjnmn@163.com"));
//主题
mailMessage.setSubject("测试");
//内容
mailMessage.setText("test");
//发信时间
mailMessage.setSentDate(new Date());
//存储信息
mailMessage.saveChanges();
//
trans = mailSession.getTransport("smtp");
//发送
trans.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
javaMail javaMail=new javaMail();
javaMail.sendMail();
}
}