JavaMail實現簡單郵件開發——163郵箱

一、打開html

P0P3/SMTP/IMAPjava

二、開發工具類web

CodeUtils.java
package com.demo.mymail.utils;

import java.util.UUID;

public class CodeUtils {
   
   public static String generateUniqueCode(){
      return UUID.randomUUID().toString().replaceAll("-", "");
   }
}
MailUtils.java
package com.demo.mymail.utils;

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

public class MailUtils implements Runnable {
   private String uName="XXXXXX@163.com";
   private String authorCode="my1075125776";
   private String email;
   private String msg;

   public MailUtils(String email, String msg) {
      this.email = email;
      this.msg = msg;
   }

   public void run() {
     // 配置
     Properties prop=new Properties();
     // 設置郵件服務器主機名,這裏是163
     prop.put("mail.host","smtp.163.com" );
     // 發送郵件協議名稱
     prop.put("mail.transport.protocol", "smtp");
     // 是否定證
     prop.put("mail.smtp.auth", true);

     try {
       // SSL加密
       MailSSLSocketFactory sf = null;
       sf = new MailSSLSocketFactory();
       // 設置信任全部的主機
       sf.setTrustAllHosts(true);
       prop.put("mail.smtp.ssl.enable", "true");
       prop.put("mail.smtp.ssl.socketFactory", sf);

       // 建立會話對象
       Session session = Session.getDefaultInstance(prop, new Authenticator() {
         // 認證信息,須要提供"用戶帳號","受權碼"
         public PasswordAuthentication getPasswordAuthentication() {
           return new PasswordAuthentication(uName, authorCode);
         }
       });
       // 是否打印出debug信息
       session.setDebug(true);

       // 建立郵件
       Message message = new MimeMessage(session);
       // 郵件發送者
       message.setFrom(new InternetAddress(uName));
       // 郵件接受者
       message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
       // 郵件主題
       message.setSubject("私人郵件");
       
       message.setContent(msg, "text/html;charset=UTF-8");
       // Transport.send(message);
       // 郵件發送
       Transport transport = session.getTransport();
       transport.connect();
       transport.sendMessage(message, message.getAllRecipients());
       transport.close();
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
}

三、引入工具包spring

<dependency>
   <groupId>javax.mail</groupId>
   <artifactId>mail</artifactId>
   <version>1.4.7</version>
</dependency>
<dependency>
   <groupId>javax.activation</groupId>
   <artifactId>activation</artifactId>
   <version>1.1.1</version>
</dependency>

四、調用服務服務器

package com.demo.mymail.controller;

import com.demo.mymail.utils.MailUtils;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/mymail/mail/")
public class MailController {
    /**
     * 發送郵件
     * @return
     */
    @GetMapping("send")
    public void send() {
        String msg = "<html><head></head><body><h1>LIUJIANJIAN</h1><h3><a href='https://www.baidu.com/'>友情連接</href></h3></body></html>";
        new Thread(new MailUtils("1075125776@qq.com", msg)).start();
    }

}

相關文章
相關標籤/搜索