歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java基礎進階:使用JavaMail發送郵件

Java基礎進階:使用JavaMail發送郵件

日期:2017/3/1 9:05:23   编辑:Linux編程

最近做的一個項目中遇到了要用Java發送郵件的需求, 在網上找了下資料,使用JavaMail發送郵件, 並整理出來。

第一步: 導包

1.使用maven

我這裡使用的是maven, IDE工具則是用的idea, 所以這裡給出配置文件pom.xml裡Jar包資源

<!-- 發送郵件 -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

2.自己下載架包

如果沒用maven的話, 就網上找個找個javaMail的jar包導入到自己的項目裡即可

3.總結:

借這次機會正好總結下這2種導包方式 首先說下maven, maven的創建方法先省略, 在以後的博文中我會一步一步講解 一般在創建完maven並構建刷新完成後, 我們只需要把相關包的API資源寫到pom.xml文件裡, 則會自動下載(前提是你的本地maven倉庫裡沒有,有的話則不用再次下載了), 這時你的項目可以直接使用這個jar包了; 關於包的API, 這裡我個人是在這個網站裡找的(速度還挺快的): http://mvnrepository.com/ 大家可以參考下 通過這個網站(或者其他API網站也可), 就可以完成以上2種導包方式;

具體步驟(圖解):

1.登陸API網站:

http://mvnrepository.com/ 並搜索所需jar包名

2.點擊找到的jar包

找到所需版本好單擊進入(如果不明確, 盡量選Usages(使用次數)最多的)

根據方式的不同, 進行相應的操作

第二步: 編寫Java代碼

package com.cai.utils;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * Created by caibaolong on 2017/1/17.
 * 發送郵件的相關工具
 */
public class MailUtil {

    /**
     * 使用Java發送一份郵件
     *
     * @param subject 郵件主題
     * @param content 郵件內容
     * @param address 目標地址
     * @throws MessagingException 郵件發送時異常
     */
    public static void mailForPassword(String subject, String content, String address) throws MessagingException {
        Properties props = new Properties();
        // 發送服務器需要身份驗證
        props.setProperty("mail.smtp.auth", "true");
        // 設置郵件服務器主機名
        props.setProperty("mail.host", "發件郵箱stmp地址");
        // 發送郵件協議名稱
        props.setProperty("mail.transport.protocol", "smtp");
        // 設置環境信息
        Session session = Session.getInstance(props);
        // 創建郵件對象
        Message msg = new MimeMessage(session);
        // 設置郵件主題
        msg.setSubject(subject);
        // 設置郵件內容
        msg.setText(content);
        // 設置發件人
        msg.setFrom(new InternetAddress("發件郵箱地址"));
        Transport transport = session.getTransport();
        // 連接郵件服務器
        transport.connect("發件郵箱地址", "發件郵箱的密碼");
        // 發送郵件
        transport.sendMessage(msg, new Address[]{new InternetAddress(address)});
        // 關閉連接
        transport.close();
    }

}

注:
1. 我自己測試的發件用郵箱是163.com, 測試成功。
2. 發件用的郵箱需要設置stmp服務要打開。

Copyright © Linux教程網 All Rights Reserved