Java email 邮件 服务

3 篇文章 0 订阅
1 篇文章 0 订阅

最近在写修改密码模块,那么邮箱验证是其中一种方式

附上,java  发送Email  代码,(提示,需要去发送邮件账号所在网站获得授权码,只有有了授权码,java才能登录账号,发送邮件)   具体详情移步百度

jar下载地址:这两个都是的,都要下载,如果没有积分,关注我,我直接发

https://download.csdn.net/download/weixin_40652498/12100058

https://download.csdn.net/download/weixin_40652498/12099197

 

重点:发送邮件端口问题, 25与465

 

#邮件对象

public class SendEmailUser {
    private String sendUserName;  //发送名称
    private String to;   //收件人
    private String cc;   //抄送人
    private String bcc; //密送
    private String theme;//主题
    private String text;    //正文

get,set,toString
}

 

#SendEmail.java

package com.nextStep.utils;


import com.nextStep.entity.SendEmailUser;
import com.nextStep.service.UserServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.FileOutputStream;
import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

/**
 * 发送邮件
 */
public class SendEmail {
    final private String account="邮箱";
    final private String password="邮箱授权码";
    final private static  Logger logger = LoggerFactory.getLogger(SendEmail.class);


    private MimeMessage m =null;
    private Session session=null;
    private Properties config=null;

    /**
     * 发送邮件
     * @throws Exception
     */
    public  boolean sendEmailTO(SendEmailUser sendEmailUser) throws Exception {

        try{
            m=createEmail(sendEmailUser);
            session=m.getSession();
            session.setDebug(true);
            config=session.getProperties();
            //config.put("mail.transport.protocol", "smtp");
            config.put("mail.smtp.host", "smtp.163.com");
            //config.put("mail.smtp.port", "25");  //阿里云行不通,只有用465端口

            config.put("mail.smtp.port", "465");
            config.put("mail.smtp.ssl.enable", true);   //465需要开启

            config.put("mail.smtp.auth", "true");
            //config.put("mail.smtp.ssl", "false");

            Transport.send(m);
        }catch (Exception e){
            throw new Exception(e);
        }
        return true;

    }


    /**
     * 创建一封邮件
     * @param sendEmailUser    邮件
     * @return
     * @throws Exception
     */
    private   MimeMessage createEmail(SendEmailUser sendEmailUser) throws Exception{
        Properties props=new Properties();

        Session session=Session.getInstance(props,new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication(account, password);
            }

        });
        //创建邮件对象
        MimeMessage m=new MimeMessage(session);
        //设置发件人
        Address from =new InternetAddress(account ,sendEmailUser.getSendUserName(),"utf-8");
        m.setFrom(from);
        //收件人
        m.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(sendEmailUser.getTo()));
        //设置抄送人
        if(sendEmailUser.getCc()!=null  ){

            m.setRecipient(RecipientType.CC, new InternetAddress(sendEmailUser.getCc()));
        }
        //设置密送
        if(sendEmailUser.getBcc()!=null  ){

            m.setRecipient(RecipientType.BCC, new InternetAddress(sendEmailUser.getBcc()));
        }

        //设置邮件主题
        m.setSubject(sendEmailUser.getTheme(),"utf-8");
        //设置邮件正文
        m.setContent(sendEmailUser.getText(),"text/plain;charset=utf-8");
        //设置邮件发送时间
        m.setSentDate(new Date());
        //确认设置完毕
        m.saveChanges();

        return m;


    }
}
package com.nextStep.entity;

public class SendEmailUser {
    private String sendUserName="下一步科技";  //发送名称
    private String to;   //收件人
    private String cc;   //抄送人
    private String bcc; //密送
    private String theme;//主题
    private String text;    //正文

    public SendEmailUser() {
    }

    public SendEmailUser(String sendUserName, String to, String cc, String bcc, String theme, String text) {
        this.sendUserName = sendUserName;
        this.to = to;
        this.cc = cc;
        this.bcc = bcc;
        this.theme = theme;
        this.text = text;
    }

    public String getSendUserName() {
        return sendUserName;
    }

    public void setSendUserName(String sendUserName) {
        this.sendUserName = sendUserName;
    }

    public String getTo() {
        return to;
    }

    public void setTo(String to) {
        this.to = to;
    }

    public String getCc() {
        return cc;
    }

    public void setCc(String cc) {
        this.cc = cc;
    }

    public String getBcc() {
        return bcc;
    }

    public void setBcc(String bcc) {
        this.bcc = bcc;
    }

    public String getTheme() {
        return theme;
    }

    public void setTheme(String theme) {
        this.theme = theme;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    @Override
    public String toString() {
        return "SendEmailUser{" +
                "sendUserName='" + sendUserName + '\'' +
                ", to='" + to + '\'' +
                ", cc='" + cc + '\'' +
                ", bcc='" + bcc + '\'' +
                ", theme='" + theme + '\'' +
                ", text='" + text + '\'' +
                '}';
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值