编写代码使用JavaMail给“163邮箱”发送邮件

设置163邮箱的授权码

什么是授权码?这个很简单,如果你不是在163的邮箱网址中登录的,而是在一些第三方客户端中登录邮箱帐号密码,那么就必须进行授权,来获取一个授权码,使用该授权码在第三方客户端中进行登录。而该授权码就相当于我们的密码了,帐号是不变的,也就是我们说我们在java代码中想登录邮箱,那么就必须使用授权码进行登录。如果获取授权码呢?
在这里插入图片描述
有了授权码就可以编写代码了

当然需要去下载javamail的依赖包,这里我就不再多说。

完整的代码

package com.dowhere;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.Message.RecipientType;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

/**

 * JavaMail发送163邮箱

 * @author 周谦

 */

public class Mail163Test {

    public static void main(String[] args) throws Exception {

       // 0.1 确定连接位置

       Properties props = new Properties();

       // 获取163邮箱smtp服务器的地址,

       props.setProperty(“mail.host”, “smtp.163.com”);

       // 是否进行权限验证。

       props.setProperty(“mail.smtp.auth”,true);

       // 0.2确定权限(账号和密码)

       Authenticator authenticator = new Authenticator() {

           @Override

           public PasswordAuthentication getPasswordAuthentication() {

              // 填写自己的163邮箱的登录帐号和授权密码,授权密码的获取,在后面会进行讲解。

              return new PasswordAuthentication(163邮箱的帐号”, “授权码”);

           }

       };

       // 1 获得连接

       /**

        * props:包含配置信息的对象,Properties类型 配置邮箱服务器地址、配置是否进行权限验证(帐号密码验证)等

        * authenticator:确定权限(帐号和密码)

        * 所以就要在上面构建这两个对象。

        */

        Session session = Session.getDefaultInstance(props, authenticator);

       // 2 创建消息

       Message message = new MimeMessage(session);

       // 2.1 发件人 xxx@163.com 我们自己的邮箱地址,就是名称

       message.setFrom(new InternetAddress(“xxx@163.com”));

       /**

        * 2.2 收件人 第一个参数: RecipientType.TO 代表收件人 RecipientType.CC 抄送 RecipientType.BCC

        * 暗送 比如A要给B发邮件,但是A觉得有必要给要让C也看看其内容,就在给B发邮件时,

        * 将邮件内容抄送给C,那么C也能看到其内容了,但是B也能知道A给C抄送过该封邮件 而如果是暗送(密送)给C的话,那么B就不知道A给C发送过该封邮件。

        * 第二个参数 收件人的地址,或者是一个Address[],用来装抄送或者暗送人的名单。或者用来群发。可以是相同邮箱服务器的,也可以是不同的

        * 这里我们发送给我们的qq邮箱

        */

       message.setRecipient(RecipientType.TO, new InternetAddress(35447702@qq.com”));

       // 2.3 主题(标题)

       message.setSubject(“邮件的标题”);

       // 2.4 正文

       String str = “这个是邮件的正文”;

       // 设置编码,防止发送的内容中文乱码。

       message.setContent(str, “text/html;charset=UTF-8);

       // 3发送消息

       Transport.send(message);

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值