Java发送邮件简单实现以及问题的解决

利用Java发送邮件的过程主要有一下步骤:

  1. 创建Session对象,配置属性
  2. 利用Session创建Message对象,然后设置发件人、收件人、邮件主题和正文
  3. 利用Transport对象发送邮件

需要的jar有2个:activation.jar和mail.jar

代码如下(这里我以网易163邮箱为例):

public class SendMailUtil {
	/**
	 * 发送邮件
	 * @param to   邮箱收件人
	 */
	public static void  sendMail(String to){
	boolean isSSL = true;
        String host = "smtp.163.com";
        int port = 465;
        String from = "aaaaaa@163.com";
        boolean isAuth = true;
        final String username = "aaaaaa@163.com";//邮箱账号
        final String password = "********";//这里的密码指的是邮箱授权码,下边会有介绍
		
	//1、创建session,配置属性
	Properties props = new Properties();
        props.put("mail.smtp.ssl.enable", isSSL);
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.port", port);
        props.put("mail.smtp.auth", isAuth);
        Session session = Session.getDefaultInstance(props, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
        //2、创建邮件对象
        try{
        Message message=new MimeMessage(session);
        message.setFrom(new InternetAddress(from));//邮件的发送人
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//邮件的收件人
        message.setSubject("主题");//邮件主题也就是标题
        message.setContent("邮件的正文", "text/html;charset=UTF-8"); 
        
        //3、发送邮件
        Transport.send(message);

        }catch (Exception e) {
            e.printStackTrace();
        }
        
	}
 	/**
	 * 测试方法
	 * @param args
	 */
    	public static void main(String[] args) {
    		sendMail("bbbbbb@163.com");
    }
}
遇到的问题:(如果上边邮箱密码你写的不是授权码就会报这个错)
 
javax.mail.AuthenticationFailedException: failed to connect
at javax.mail.Service.connect(Service.java:322)
at javax.mail.Service.connect(Service.java:172)
at javax.mail.Service.connect(Service.java:121)
at javax.mail.Transport.send0(Transport.java:190)
at javax.mail.Transport.send(Transport.java:120)
at cn.hut.cg.util.SendMailUtil.sendMail(SendMailUtil.java:54)
at cn.hut.cg.util.SendMailUtil.main(SendMailUtil.java:67)


解决方法:

1、需要到你的邮箱中开启服务:开启POP3服务 和 SMTP服务


然后要发短信绑定手机,设置客户端授权密码 ,这里的授权密码就是上边所说的授权密码。


2、确保POP3服务和SMTP服务都选择上,设置完成后,问题也就解决了。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值