如果程序出現 454 Authentication failed, please open smtp flag first! 錯誤,那么一般是郵箱沒有開通POP3/SMTP服務,登錄郵箱,在設置中開啟該服務即可 !
另外需要的jar包如下: imap.jar, mail.jar, smtp.jar, ?可以自己在網上下載。
package com.hzml.serve;import java.io.IOException; import java.util.Date; import java.util.Properties;import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; 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; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/MailResponse.servlet") public class MailResponse extends HttpServlet {private static final long serialVersionUID = 1L;public MailResponse() {super();}private void process(HttpServletRequest request, HttpServletResponse response) {try{String pwd = "hjzgg5211314";//發件人郵箱密碼String mailfrom = request.getParameter("emailFrom"); //網易的郵箱String wangyiFrom = mailfrom.substring(0, mailfrom.indexOf('@'));//網易郵箱的用戶名String tu = "163.com"; //你郵箱的后綴域名String tto= request.getParameter("emailTo"); //接收郵件的郵箱String ttitle= "在線軟件工程管理員回復!";String tcontent = request.getParameter("messageTo");Properties props=new Properties();props.put("mail.smtp.host","smtp."+tu);//郵箱SMTP服務器地址端口 props.put("mail.smtp.auth","true");//這樣才能通過驗證 Session s=Session.getInstance(props);s.setDebug(true);MimeMessage message=new MimeMessage(s);//給消息對象設置發件人/收件人/主題/發信時間 InternetAddress from=new InternetAddress(mailfrom); //發件人的qq郵箱 message.setFrom(from);InternetAddress to=new InternetAddress(tto);//收件人的郵箱 message.setRecipient(Message.RecipientType.TO,to);message.setSubject(ttitle);message.setSentDate(new Date());//給消息對象設置內容 BodyPart mdp=new MimeBodyPart();//新建一個存放信件內容的BodyPart對象 mdp.setContent(tcontent,"text/html;charset=gb2312");//給BodyPart對象設置內容和格式/編碼方式 Multipart mm=new MimeMultipart();//新建一個MimeMultipart對象用來存放BodyPart對//象(事實上可以存放多個) mm.addBodyPart(mdp);//將BodyPart加入到MimeMultipart對象中(可以加入多個BodyPart) message.setContent(mm);//把mm作為消息對象的內容 message.saveChanges();Transport transport=s.getTransport("smtp");transport.connect("smtp."+tu, wangyiFrom, pwd); //這里的wangyiFrom為發件人網易賬號 transport.sendMessage(message,message.getAllRecipients());transport.close();}catch(Exception e){e.printStackTrace();}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub process(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub process(request, response);}}
?