前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >邮件 | 教你使用 JAVA实现 邮件发送 功能

邮件 | 教你使用 JAVA实现 邮件发送 功能

作者头像
码神联盟
发布2018-07-31 10:16:56
1.4K0
发布2018-07-31 10:16:56
举报
文章被收录于专栏:码神联盟码神联盟

需求:使用Java来实现‘邮件发送’功能

发送方:QQ邮箱

接收方:126邮箱

环境:myeclipse、jdk1.8、mail包、maven

项目下载:(技术群会员,方可下载)(全文最后申请入群即可成为会员)

开发步骤

1:新建maven工程,如下:

2:开通QQ邮箱的POP3/IMAP/SMTP服务:

3:在maven工程中,导入发送邮件所需jar包:

代码语言:javascript
复制
<dependencies>
    <!-- java发送邮件jar包 -->
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
</dependencies>

4:添加发送邮件的工具类:

代码语言:javascript
复制
/**
 * 邮件发送
 *         QQ邮箱--->126邮箱
 * @author likang
 */
public class SendEmailManger extends Thread {
    private String mailAdr;
    private String content;
    private String subject;
    public SendEmailManger(String mailAdr, String subject, String content) {
            super();
            this.mailAdr = mailAdr;
            this.subject = subject;
            this.content = content;
        }
    @Override
    public void run() {
        super.run();
        try {
            sendMail(mailAdr, subject, content);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private void sendMail(String mailAdr, String subject, String content) throws Exception {
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        final Properties props = new Properties();
        // 表示SMTP发送邮件,需要进行身份验证
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "smtp.qq.com");
        // smtp登陆的账号、密码 ;需开启smtp登陆
        props.setProperty("mail.debug", "true");
        props.put("mail.user", "你的QQ邮箱地址");
        props.put("mail.password", "QQ获取的授权码");
        // 特别需要注意,要将ssl协议设置为true,否则会报530错误
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);
        Authenticator authenticator = new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                // 用户名、密码
                String userName = props.getProperty("mail.user");
                String password = props.getProperty("mail.password");
                return new PasswordAuthentication(userName, password);
            }
        };
        // 使用环境属性和授权信息,创建邮件会话
        Session mailSession = Session.getInstance(props, authenticator);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        // 设置发件人
        try {
            InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
            message.setFrom(form);
            // 设置收件人
            InternetAddress to = new InternetAddress(mailAdr);
            message.setRecipient(RecipientType.TO, to);
            // 设置抄送
            // InternetAddress cc = new InternetAddress("591566764@qq.com");
            // message.setRecipient(RecipientType.CC, cc);
            // 设置密送,其他的收件人不能看到密送的邮件地址
            // InternetAddress bcc = new InternetAddress("mashen@163.com");
            // message.setRecipient(RecipientType.CC, bcc);
            // 设置邮件标题
            message.setSubject(subject);
            // 设置邮件的内容体
            message.setContent(content, "text/html;charset=UTF-8");
            // 发送邮件
            Transport.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        SendEmailManger d = new SendEmailManger("邮件接收者地址", "码神联盟", "尊敬的码神你好: <br/><br/><a href='https://mp.weixin.qq.com/s/BJR5vfgWIyEDN88PU3g6xA' style='color:red;'>微信公众号码神联盟真不错....</a>");
        d.start();
    }
}

5:验证结果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码神联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档