实现邮箱验证功能的代码

package com.maxtech.util;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class MyEmailAutherticator extends Authenticator {

    //用户名(登录邮箱)
    private String username;

    //密码
    private String password;

    public MyEmailAutherticator() {
        super();
    }

    //初始化邮箱和密码
    public MyEmailAutherticator(String username, String password) {
        this.username = username;
        this.password = password;
    }

    //用作登录校验,以确保对该邮箱有发送邮件的权利
    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }

    //set and get method
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

/////////////////////////////////////////////////////////////////////////////////////


package com.maxtech.util;

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

public class Mail {

    //发送邮件的帐号和密码
    private String username="xxxxx@qq.com";

    private String password="xxxxx";

//    private String host = "smtp.qq.com";
    private String host = "mail.qq.com";

    private String mail_head_name = "this is head of this mail";

    private String mail_head_value = "this is head of this mail";

    private String mail_to ;

    public String getMail_to() {
return mail_to;
}

public void setMail_to(String mail_to) {
this.mail_to = mail_to;
}

private String mail_from = "xx@qq.com";

    private String mail_subject = "xxxxxxxxx";

    private String mail_body ;

    public String getMail_body() {
return mail_body;
}

public void setMail_body(String mail_body) {
this.mail_body = mail_body;
}

private String personalName = "xxxxxx";

    public void sendMail() throws SendFailedException{
        try {
             //发送邮件的props文件
            Properties props = new Properties();
            // 初始化props
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true");
            System.out.println(props);

            //进行邮件服务用户认证
            Authenticator auth = new MyEmailAutherticator(username,password);

            // 创建session,和邮件服务器进行通讯
            Session session = Session.getDefaultInstance(props,auth);

            // 创建mime类型邮件
            MimeMessage message = new MimeMessage(session);
            //设置邮件格式,这里决定发送的内容换行是用文本(win下\r\n   linux下\n    osx下\r)还是br
      //我们最好选择用邮件格式,因为text格式不同的平台换行符不一样()
            message.setContent(mail_body,"text/html;charset=utf-8");
           //设置文本格式
            //message.setText(mail_body);
            // 设置主题
            message.setSubject(mail_subject);

            //设置邮件标题
            message.setHeader(mail_head_name, mail_head_value);
            //设置邮件发送时期
            message.setSentDate(new Date());
            Address address = new InternetAddress(mail_from,personalName);
            //设置邮件发送者的地址
            message.setFrom(address);

            //======单发邮件======
            //设置邮件接收者的地址
            Address toaddress = new InternetAddress(mail_to);
            // 设置收件人
            message.addRecipient(Message.RecipientType.TO,toaddress);

            //======群发邮件======
//            List recipients = new ArrayList();
//            recipients.add("123456789@qq.com");
//            recipients.add("234567890@gmail.com");
//            final int num = recipients.size();
//            InternetAddress[] addresses = new InternetAddress[num];
//            for (int i = 0; i < num; i++) {
//                addresses[i] = new InternetAddress(recipients.get(i));
//            }
//            message.setRecipients(Message.RecipientType.TO, addresses);


            System.out.println(message);
            // 发送邮件
            Transport.send(message);
            System.out.println("Send Mail Ok!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值