java发送邮件系统

package util;

import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
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 SendCodeUsingEmail implements  Email {
    //设置发送人email账号和STMP的授权码
    private String accoout="3221726446@qq.com";
    private String password="vkvfqkrsxluecjga";
    //收件人邮箱地址
    private String receiver=null;
    //code表示验证码
    private String code=null;
    //发件人STMP的服务器地址
    private String SMTPHost="smtp.qq.com";

    public SendCodeUsingEmail(String receiver,String code){
        this.receiver=receiver;
        this.code=code;
    }

    @Override
    public void sendEmail() {
        //获取session对象
        Session session=createSession();
        //创建MimeMessage对象
        MimeMessage message=createMessage(session);
        //根据session获取邮件传输对象
        Transport transport=null;
        try {
            transport=session.getTransport();
            transport.connect(accoout,password);
            //发送  message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
            transport.sendMessage(message,message.getAllRecipients());
            transport.close();
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }

    //配置以及创建session会话
    private Session createSession(){
        Properties properties=new Properties();
        //分别是  使用的协议  服务器的地址 需要请求认证
        properties.setProperty("mail.transport.protocol","smtp");
        properties.setProperty("mail.smtp.host",SMTPHost);
        properties.setProperty("mail.smtp.auth","true");
        /*
            ssl认证
         */
        final String smtpPort = "465";
        properties.setProperty("mail.smtp.port", smtpPort);
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        properties.setProperty("mail.smtp.socketFactory.fallback", "false");
        properties.setProperty("mail.smtp.socketFactory.port", smtpPort);
        //根据配置创建会话服务对象,用于和服务器交互
        Session session=Session.getInstance(properties);
        session.setDebug(true);
        return  session;
    }

    //创建发送消息
    private MimeMessage createMessage(Session session){
        MimeMessage message=new MimeMessage(session);
        //
        try {
            //设置发送方和收件方
            message.setFrom(new InternetAddress(accoout,"235亿心网","UTF-8"));
            message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiver,"235亿心网用户您好","UTF-8"));
            //邮件主题
            message.setSubject("235亿心网验证系统","UTF-8");
            //右键内容
            message.setContent("本次注册验证码为:"+code,"text/html;charset=utf-8");
            //设置发送时间
            message.setSentDate(new Date());
            //保存设置
            message.saveChanges();
        } catch (MessagingException e) {
            e.printStackTrace();
        }finally {
            return message;
        }
    }
}

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值