java發送郵箱使用方法,以及使用465端口需要注意的問題

在網站建設過程中我們經常需要使用到郵箱來發送信息給用戶通知信息,這時候我們就會需要使用java發送郵箱的方法,而且由於出於安全原因,我們有時候會使用加密端口465端口來發送郵箱,下面我們就來講一下發送郵箱的代碼,還有使用465端口需要加入什麼代碼。
發送郵箱我們需要使用到(mail.jar),這個大家直接在網上下載就可以了

//需要引入的包
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.;
import java.util.
;
import javax.activation.*;
public class DuZhan_Email {

private String host; // smtp服務器 如smtp.163.com
private String from; // 發件人地址
private String to; // 收件人地址
private String user; // 用戶名
private String pwd ; // 密碼
private String subject; // 郵件標題

//設置郵箱信息,from發件人,to收件人,subject發送郵箱的標題
public void setAddress(String from, String to, String subject) {
    this.from = from;
    this.to = to;
    this.subject = subject;
} 

//發送郵箱,host發送的smtp,如smtp.163.com,content發送郵箱的內容
public void send(String host, String user, String pwd,String content) {
    this.host = host;
    this.user = user;
    this.pwd = pwd;

    Properties props = new Properties();

    // 設置發送郵件的郵件服務器的屬性
    props.put("mail.smtp.host", host);
    // 需要經過授權,也就是有戶名和密碼的校驗,這樣才能通過驗證(一定要有這一條)
    props.put("mail.smtp.auth", "true");

    //465端口是加密端口,這裏是將信息加密,再發送
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

    //設置發送端口是465,如果不設置,默認端口是25端口
    props.setProperty("mail.smtp.port", "465");

    // 用剛剛設置好的props對象構建一個session
    Session session = Session.getDefaultInstance(props);

    // 有了這句便可以在發送郵件的過程中在console處顯示過程信息,供調試使
    // 用(你可以在控制檯(console)上看到發送郵件的過程)
  //  session.setDebug(true);

    // 用session爲參數定義消息對象
    MimeMessage message = new MimeMessage(session);
    try {
        // 加載發件人地址
        message.setFrom(new InternetAddress(from));
        // 加載收件人地址
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        // 加載標題
        message.setSubject(subject);

        // 向multipart對象中添加郵件的各個部分內容,包括文本內容
        Multipart multipart = new MimeMultipart();

        // 設置郵件的文本內容
        BodyPart contentPart = new MimeBodyPart();
        contentPart.setText(content);
        multipart.addBodyPart(contentPart);

        // 將multipart對象放到message中
        message.setContent(multipart);
        // 保存郵件
        message.saveChanges();
        // 發送郵件
        Transport transport = session.getTransport("smtp");
        // 連接服務器的郵箱
        transport.connect(host, user, pwd);
        // 把郵件發送出去
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    } catch (Exception e) {
        //發送失敗,把原因顯示出來
        e.printStackTrace();
    }
}

}

下面就是調用些方法去發送郵箱
DuZhan_Email cn = new DuZhan_Email();

// 設置發件人地址、收件人地址和郵件標題
cn.setAddress("test.163.com", "test.163.com", "測試發送");

cn.send("smtp.163.com", "test.163.com", "密碼","這是發送的內容");

//上面的方法要注意如果使用465商品,需要加入這兩句代碼
//465端口是加密端口,這裏是將信息加密,再發送
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

//設置發送端口是465,如果不設置,默認端口是25端口
props.setProperty("mail.smtp.port", "465");

在代碼沒有錯誤的時候,有時候會javaee.jar,這個.jar有衝突,有時候是5 java EE,需要這個javaee.jar移除,引入6 java EE的javaee.jar
深圳網站建設https://www.sz886.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章