美文网首页
JavaEmail做邮件发送

JavaEmail做邮件发送

作者: caikunhai | 来源:发表于2017-03-14 15:06 被阅读0次

备注:本例子已QQ邮箱发送为例(邮件发送要用线程不然网站会很慢);

使用先邮箱设置:先开启邮箱 Pop3Smtp服务获取授权码

怎么获取授权码?

先进入设置-》帐户页面找到入口,按照以下流程操作。

依赖jar包:javax.mail 1.4.4

package external.email;


import java.security.GeneralSecurityException;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message.RecipientType;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

public class JavaEmailApi {

private static String SendEmailAccount ="xxxx@qq.com";

private static String Pop3SmtpKey ="xxxxxxxxxxx";

public static void SendEmail(String recipientAccount,String subject,String content){

//跟smtp服务器建立一个连接

Properties p = new Properties();

//设置邮件服务器主机名

p.setProperty("mail.host", "smtp.qq.com");//指定邮件服务器,默认端口号25

//发送服务器需要身份证验证

p.setProperty("mail.smtp.auth", "true");//要采用指定用户名密码的方式去认证

//发送邮件协议名称

p.setProperty("mail.transport.protocol", "smtp");

//开启SSL加密,否则会失败

MailSSLSocketFactory sf = null;

try {

sf = new MailSSLSocketFactory();

} catch (GeneralSecurityException e1) {

e1.printStackTrace();

}

sf.setTrustAllHosts(true);

p.put("mail.smtp.ssl.enable", "true");

p.put("mail.smtp.ssl.socketFactory", sf);

//开启debug调试,以便在控制台查看

// session.setDebug(true);也可以这样设置

// p.setProperty("mail.debug", "true");

//创建session

Session session = Session.getDefaultInstance(p, new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

//用户名可以用QQ账号也可以用邮箱的别名

PasswordAuthentication pa = new PasswordAuthentication(SendEmailAccount, Pop3SmtpKey);

//后面的字符是授权码,用qq密码不行!!

return pa;

}

});

//session.setDebug(true);//设置打开调试状态

try {

//声明一个Message对象(代表一封邮件),从session中创建

MimeMessage msg = new MimeMessage(session);

//邮件信息封装

// 1发件人

msg.setFrom(new InternetAddress(SendEmailAccount));

// 2收件人

msg.setRecipient(RecipientType.TO, new InternetAddress(recipientAccount));

// 3邮件内容:主题、内容

msg.setSubject(subject);

// StringBuilder是线程不安全的,但是速度快,这里因为只会有这个线程来访问,所以可以用这个

/*StringBuilder sbd = new StringBuilder();

sbd.append("645833737@qq.com
欢迎!请确认此邮件地址以激活您的账号。
");

sbd.append("

sbd.append(">立即激活
");

sbd.append("或者点击下面链接:
");

sbd.append("http://192.168.1.102:8080/myMailWeb/ActiveServlet?acode=111111
");

sbd.append("这是一封自动发送的邮件;如果您并未要求但收到这封信件,您不需要进行任何操作。");

//msg.setContent(sbd.toString(), "text/html;charset=utf-8");//发html格式的文本

msg.setContent(content, "text/html;charset=utf-8");//发html格式的文本

*///发送动作

Transport.send(msg);

//System.out.println("给645833737@qq.com发送邮件成功。");

} catch (AddressException e) {

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

}

}

}

相关文章

  • JavaEmail做邮件发送

    备注:本例子已QQ邮箱发送为例(邮件发送要用线程不然网站会很慢); 使用先邮箱设置:先开启邮箱 Pop3Smtp服...

  • javaEmail三:发送邮件

    添加maven依赖在 maven 配置文件 pom.xml 中添加依赖: 发送邮件(纯文本)

  • 浅谈JavaEmail:发送第一封邮件

    前言 没错,有需求才有动力,这一次老大让我自己研究一下如何使用Java代码来发送一封邮件.正愁没事可搞,借着今天是...

  • spring boot 发送邮件

    spring boot 发送邮件 简介 spring boot 已经对发送邮件做了做封装,只需引入spring-b...

  • 解决jenkins邮件发送不出去

    一、问题 jenkins做自动化测试生成测试报告后发送邮件,设置邮箱后,jenkins测试邮件发送成功,构建邮件发...

  • spring boot 邮件发送基础详解(4种邮件超级详细)

    本文将介绍spring boot邮件发送将介绍以下几个方面: 邮件使用场景 邮件发送原理 邮件发送流程 邮件发送步...

  • SKPSMTPMessage

    SKPSMTPMessage 可以自己实现邮件发送,采用系统的邮件发送会弹出邮件发送框,如果要求静默发送邮件可参照...

  • SpringBoot 发送邮件

    # 依赖 # 配置 # 发送简单文本邮件 # 发送html邮件 # 使用邮件模板发送邮件 添加依赖 配置 新建ht...

  • 2018-10-11

    文本邮件的发送 1.邮件发送流程 ​ 邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应...

  • python自动发送邮件

    python自动发送邮件 在说python发送邮件之前,需要了解一下简单的邮件发送知识,邮件发送一般通过SMTP协...

网友评论

      本文标题:JavaEmail做邮件发送

      本文链接:https://www.haomeiwen.com/subject/ikovittx.html