JavaMail 使用163发邮件

EmailAuthenticator 验证对象

package cn.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
 * EmailAuthenticator 继承自 Authenticator
 * */
public class EmailAuthenticator extends Authenticator {
	//用户名
	private String username = null;
	//密码
	private String userpass = null;
	//构造方法传参数
	public EmailAuthenticator(String username, String userpass) {
		super();
		this.username = username;
		this.userpass = userpass;
	}
	//得到密码的验证对象
	public PasswordAuthentication getPasswordAuthentication(){
		return new PasswordAuthentication(username, userpass);
	}
}

 

 

Mail 发邮件类

package cn.mail;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
 * 发邮件类
 * */
public class Mail {
	//服务器,发件人,收件人,主题,内容
	private String mailServer,from,to,mailSubject,mailContent;
	//用户名,密码
	private String username,password;
	//构造方法:把所有的参数都设置好
	public Mail() {
		//设置邮件信息
		username = "chaoyi77@163.com";
		password = "*****";
		mailServer = "smtp.163.com";
		from = "chaoyi77@163.com";
		to="ichaoyv@163.com";//收件人写自己
		mailSubject="问好";
		mailContent="好久不见,最近好吗?";
	}
	/**
	 * 发邮件方法
	 * */
	public void send(){
		//设置邮件服务器
		Properties prop = new Properties();
		//smtp 服务器主机
		prop.put("mail.smtp.host", mailServer);
		//是否要验证
		prop.put("mail.smtp.auth", "true");
		//验证器
		EmailAuthenticator mailAuth = new EmailAuthenticator(username,password);
		//产生 Session 服务
		Session mailSession = Session.getInstance(prop, mailAuth);
		try {
			//封装 Message 对象
			Message message = new MimeMessage(mailSession);
			message.setFrom(new InternetAddress(from));//设置发件人
			message.setRecipient(Message.RecipientType.TO,
					new InternetAddress(to));//设置收件人
			message.setSubject(mailSubject);//设置主题
			message.setContent(mailContent,
					"text/html;charset=GBK");//设置内容(设置字符集外置乱码问题)
			message.setSentDate(new Date());//设置日期
			//创建 Transport 实例,发送邮件,参数是:协议
			Transport tran = mailSession.getTransport("smtp");
			//发送:消息,收件人数组
			Transport.send(message, message.getAllRecipients());
			tran.close();
			System.out.println("发送成功");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("发送失败");
		}
	}


}

 

Test 测试类

package cn.test;
import cn.mail.Mail;
/**
 * 测试类
 * */
public class Test {
	public static void main(String[] args) {
		Mail mail = new Mail();
		System.out.println("开始发送");
		mail.send();
	}
}

 

效果图:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值