JavaMail

引入jar包

<!-- JavaMail依赖 -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.7</version>
		</dependency>

使用JAVAMail发送邮件

封装邮件信息对象

package com.saninco.demo;

/**
 * 封装的邮件对象
 */
public class MyEmailDemo {
    private String smtpserver;    //发件人的邮箱的 SMTP 服务器地址
    private String smtpport;     // 连接的服务端口
    private String userAccout;    //发件人邮箱账号 *****@163.com
    private String userPwd;       //发件人邮箱密码
    private String userPresonal;  //    发件方昵称 kimi
    private String Useradress;    //接收方地址 ******@163.com
    private String Emailtitle;   // 邮件标题
    private String Emailtest;    // 邮件内容

    public String getSmtpserver() {
        return smtpserver;
    }

    public void setSmtpserver(String smtpserver) {
        this.smtpserver = smtpserver;
    }

    public String getSmtpport() {
        return smtpport;
    }

    public void setSmtpport(String smtpport) {
        this.smtpport = smtpport;
    }

    public String getUserAccout() {
        return userAccout;
    }

    public void setUserAccout(String userAccout) {
        this.userAccout = userAccout;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }

    public String getUserPresonal() {
        return userPresonal;
    }

    public void setUserPresonal(String userPresonal) {
        this.userPresonal = userPresonal;
    }

    public String getUseradress() {
        return Useradress;
    }

    public void setUseradress(String useradress) {
        Useradress = useradress;
    }

    public String getEmailtitle() {
        return Emailtitle;
    }

    public void setEmailtitle(String emailtitle) {
        Emailtitle = emailtitle;
    }

    public String getEmailtest() {
        return Emailtest;
    }

    public void setEmailtest(String emailtest) {
        Emailtest = emailtest;
    }
}

创建发送邮件

package com.saninco.demo;

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

/**
 * 邮件创建和发送
 */
public class MyEmail {

    /**
     * 发送邮件
     * @param smtpserver    发件人的邮箱的 SMTP 服务器地址
     * @param smtpport      连接的服务端口
     * @param userAccout    发件人邮箱账号 *****@163.com
     * @param userPwd       发件人邮箱密码

     * @param userPresonal      发件方昵称 kimi
     * @param Useradress    接收方地址 ******@163.com
     * @param Emailtitle    邮件标题
     * @param Emailtest     邮件内容
     * @throws Exception
     */
    public void SendEmail(String smtpserver,String smtpport,String userAccout,
                          String userPwd,String userPresonal,String Useradress,
                          String Emailtitle,String Emailtest) throws Exception {

        // 创建邮件配置
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
        props.setProperty("mail.smtp.host", smtpserver); // 发件人的邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.port", smtpport);//连接的服务端口
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
        props.setProperty("mail.smtp.ssl.enable", "true");// 开启ssl


        // 根据邮件配置创建会话,注意session别导错包
        Session session = Session.getDefaultInstance(props);
        // 开启debug模式,可以看到更多详细的输入日志
        session.setDebug(true);
        //创建邮件
        MimeMessage message = createEmail(session,userAccout,userPresonal,Useradress,Emailtitle,Emailtest);
        //获取传输通道
        Transport transport = session.getTransport();
        //服务器地址,发送人账号,密码
        transport.connect(smtpserver,userAccout, userPwd);
        //连接,并发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

    }

    /**
     * 发送邮件
     * @param emailDemo 邮件主体
     * @throws Exception
     */
    public void SendEmailFor(MyEmailDemo emailDemo) throws Exception {

        // 创建邮件配置
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
        props.setProperty("mail.smtp.host", emailDemo.getSmtpserver()); // 发件人的邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.port", emailDemo.getSmtpport());//连接的服务端口
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
        props.setProperty("mail.smtp.ssl.enable", "true");// 开启ssl


        // 根据邮件配置创建会话,注意session别导错包
        Session session = Session.getDefaultInstance(props);
        // 开启debug模式,可以看到更多详细的输入日志
        session.setDebug(true);
        //创建邮件
        MimeMessage message = createEmail(session,emailDemo.getUserAccout(),emailDemo.getUserPresonal(),emailDemo.getUseradress(),
                emailDemo.getEmailtitle(),emailDemo.getEmailtest());
        //获取传输通道
        Transport transport = session.getTransport();
        transport.connect(emailDemo.getSmtpserver(),emailDemo.getUserAccout(),emailDemo.getUserPwd());
        //连接,并发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

    }

    /**
     * 创建邮件
     * @param session
     * @param accoutAdress 发件方地址  *****@163.com
     * @param userPresonal 发件方昵称 kimi
     * @param Useradress    接收方地址 ******@163.com
     * @param Emailtitle 邮件标题
     * @param Emailtest 邮件内容
     * @return
     * @throws Exception
     */
    public MimeMessage createEmail(Session session,String accoutAdress, String userPresonal,String Useradress,String Emailtitle,String Emailtest) throws Exception {
        // 根据会话创建邮件
        MimeMessage msg = new MimeMessage(session);
        // address邮件地址, personal邮件昵称, charset编码方式
        InternetAddress fromAddress = new InternetAddress(accoutAdress,userPresonal, "utf-8");
        // 设置发送邮件方
        msg.setFrom(fromAddress);
        //邮件接收方
        InternetAddress receiveAddress = new InternetAddress(Useradress, "test", "utf-8");
        // 设置邮件接收方
        msg.setRecipient(Message.RecipientType.TO, receiveAddress);
        // 设置邮件标题
        msg.setSubject(Emailtitle, "utf-8");
        //设置文件内容
        msg.setText(Emailtest);

//        msg.set
        // 设置显示的发件时间
        msg.setSentDate(new Date());
        // 保存设置
        msg.saveChanges();
        return msg;
    }
}

测试test

package com.saninco.app.service;

import com.saninco.demo.MyEmail;
import com.saninco.demo.MyEmailDemo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.mail.Message.RecipientType;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

@RunWith(SpringRunner.class)
@SpringBootTest
public class EmailServiceTest {

    public static final String SMTPSERVER = "smtp.163.com";
    public static final String SMTPPORT = "465";
    public static final String ACCOUT = "******@163.com";
    public static final String PWD = "******";



    @Test
    public void testSendEmail() throws Exception {

        // 创建邮件配置
        Properties props = new Properties();
        props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
        props.setProperty("mail.smtp.host", SMTPSERVER); // 发件人的邮箱的 SMTP 服务器地址
        props.setProperty("mail.smtp.port", SMTPPORT);
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
        props.setProperty("mail.smtp.ssl.enable", "true");// 开启ssl


        // 根据邮件配置创建会话,注意session别导错包
        Session session = Session.getDefaultInstance(props);
        // 开启debug模式,可以看到更多详细的输入日志
        session.setDebug(true);
        //创建邮件
        MimeMessage message = createEmail(session);
        //获取传输通道
        Transport transport = session.getTransport();
        transport.connect(SMTPSERVER,ACCOUT, PWD);
        //连接,并发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

    }


    public MimeMessage createEmail(Session session) throws Exception {
        // 根据会话创建邮件
        MimeMessage msg = new MimeMessage(session);
        // address邮件地址, personal邮件昵称, charset编码方式
        InternetAddress fromAddress = new InternetAddress(ACCOUT,
                "kimi", "utf-8");
        // 设置发送邮件方
        msg.setFrom(fromAddress);
        InternetAddress receiveAddress = new InternetAddress(
                "******@qq.com", "test", "utf-8");
        // 设置邮件接收方
        msg.setRecipient(RecipientType.TO, receiveAddress);
        // 设置邮件标题
        msg.setSubject("测试标题", "utf-8");
        msg.setText("我是个程序员");
        // 设置显示的发件时间
        msg.setSentDate(new Date());
        // 保存设置
        msg.saveChanges();
        return msg;
    }


    @Test
    public void testEmailShoe() throws Exception{
        MyEmail myEmail=new MyEmail();
        myEmail.SendEmail("smtp.163.com","465",
                "******@qq.com","******","kimitwo",
                "******@qq.com","测试邮件标题","这是一段测试内容");
    }

    @Test
    public void testEmailShoe3() throws Exception{
        MyEmail myEmail=new MyEmail();
        MyEmailDemo emailDemo=new MyEmailDemo();
        emailDemo.setSmtpserver("smtp.163.com");
        emailDemo.setSmtpport("465");
        emailDemo.setUserAccout("*****@163.com");
        emailDemo.setUserPwd("*****");
        emailDemo.setUserPresonal("xiaoming");
        emailDemo.setUseradress("******@qq.com");
        emailDemo.setEmailtitle("封装好的内容");
        emailDemo.setEmailtest("这是一段比较重要的文字,不要拦截");
        myEmail.SendEmailFor(emailDemo);
    }



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值