jsp實現郵件的發送


如果程序出現 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);
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM