网上查了很多资料,都不能解决问题,尝试了n次,最后还是成功了
以下为jsp代码
String mailto=request.getParameter("mailto");
String title=request.getParameter("title");
if(title!=null) title=new String(title.getBytes("ISO8859-1"),"utf-8");
String content=request.getParameter("content");
if(content!=null) content=new String(content.getBytes("ISO8859-1"),"utf-8");
String cc=request.getParameter("cc");//抄送
final String MAIL_USERNAME="viieecn@gmail.com";
final String MAIL_PASSWORD="viiee123";
final String MAIL_SMTP="smtp.gmail.com";
final String MAIL_MAILNAME="viieecn@gmail.com";
/**配置区 **/
Properties properties;
Session mailSession=null;
MimeMessage mailMessage;
Transport trans;
try {
properties = new Properties();
//设置邮件服务器
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
properties.setProperty("mail.transport.protocol", "smtp");
properties.put("mail.smtp.host", MAIL_SMTP);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.port", "465");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.socketFactory.fallback", "false");
properties.setProperty("mail.smtp.quitwait", "false");
//properties.put("mail.smtp.startssl.enable","true");
//properties.put("mail.smtp.starttls.enable","true");
//验证
//根据属性新建一个邮件会话
mailSession = Session.getInstance(properties, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(MAIL_USERNAME, MAIL_PASSWORD);
}
});
//mailSession.setDebug(true);
//建立消息对象
mailMessage = new MimeMessage(mailSession);
//发件人
mailMessage.setFrom(new InternetAddress(MAIL_MAILNAME));
//收件人
mailMessage.setRecipients(MimeMessage.RecipientType.TO,InternetAddress.parse(mailto));
//抄送
mailMessage.setRecipients(MimeMessage.RecipientType.CC,InternetAddress.parse(cc));
//主题
mailMessage.setSubject(title);
//内容
//mailMessage.setText(content);
//指定邮箱内容及ContentType和编码方式
mailMessage.setContent(content, "text/html;charset=utf-8");
//发信时间
mailMessage.setSentDate(new Date());
//指定邮件优先级 1:紧急 3:普通 5:缓慢
mailMessage.setHeader("X-Priority", "1");
//存储信息
mailMessage.saveChanges();
//
trans = mailSession.getTransport("smtp");
//发送
Transport.send(mailMessage);
//session.setAttribute("msg","发送成功");
out.print("<script>alert('发送成功');location.replace('http://localhost:8080/mail/send.jsp');</script>");
} catch (Exception e) {
e.printStackTrace();
out.print("<script>alert('发送失败');history.go(-1);</script>");
} finally {
}