首先咱們須要瞭解一下郵件發送(SMTP)和郵件接收(POP3)的協議: SMTP(Simple MailTransfer Protocol)即簡單郵件傳輸協議, 它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制郵件的中轉方式。 SMTP協議屬於TCP/IP協議簇,它幫組每臺計算機在發送或中轉信件時找到下一個目的地。 SMTP服務器則是遵循SMTP協議的發送郵件服務器,用來發送或中轉發出的電子郵件。 POP3(Post Office Protocol -Version3)本協議主要用於主持客戶端遠程管理在服務器上的電子郵件。html
咱們這裏使用網易郵箱爲例java
這一步的主要目的是開通SMTP協議和獲取客戶端受權碼(受權碼須要本身設置相似於本身的郵箱密碼)bash
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>
複製代碼
/**
* 郵件
* author:CoderZS
*/
public class javaMailTest {
private static final String HOST = "smtp.163.com"; // 發送郵件郵箱的配置
private static final Integer PORT = 25;
private static final String USERNAME = "zs520it@163.com";//163郵箱帳號
private static final String PASSWORD = "000000";//163郵箱---受權碼
private static final String EMAILFORM = "zs520it@163.com"; //發送郵件的用戶
private static JavaMailSenderImpl mailSender = createMailSender();
private static final String EMAILNAME = "數據異常報告"; //收到郵件顯示對方郵件名稱 整體名稱
private static final String EMAILTOPNAME = "定時任務1數據採集異常"; //郵件名稱
/**
* 郵件發送器
*
* @return 配置好的工具
*/
private static JavaMailSenderImpl createMailSender() {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost(HOST);
sender.setPort(PORT);
sender.setUsername(USERNAME);
sender.setPassword(PASSWORD);
sender.setDefaultEncoding("Utf-8");
Properties p = new Properties();
p.setProperty("mail.smtp.timeout", "25000");
p.setProperty("mail.smtp.auth", "false");
sender.setJavaMailProperties(p);
return sender;
}
/**
* 發送郵件
* @param to 郵件接收人
* @param subject 主題
* @param html 發送內容
* @throws UnsupportedEncodingException 異常
*/
public static void sendHtmlMail(String to, String subject, String html) {
try {
MimeMessage mimeMessage = mailSender.createMimeMessage();
// 設置utf-8或GBK編碼,不然郵件會有亂碼
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
messageHelper.setFrom(EMAILFORM, EMAILNAME);
messageHelper.setTo(to);
messageHelper.setSubject(subject);
messageHelper.setText(html, true);
mailSender.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
sendHtmlMail("769671508@qq.com", EMAILTOPNAME, "數據入庫異常! CoderZS 我在簡書等你");
}
}
複製代碼
郵件通知 服務器