此代码用的jar文件:mail.jar(我这里用的是1.4.7 的版本);

如果jdk用的是1.8版本会出现SSL错误:这个问题是jdk导致的,jdk1.8里面有一个jce的包,安全性机制导致的访问https会报错,官网上有替代的jar包,如果替换掉就可以了.

这两个jar包的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

下载之后,把这个压缩文件解压,得到两个jar包去覆盖jdk安装目录下的jre\lib\security\下相同的jar包就能解决java8的邮件发送问题。

javax.mail

mail

1.4.7

// https://mvnrepository.com/artifact/javax.mail/mail

compile group: 'javax.mail', name: 'mail', version: '1.4.7'

import com.sun.mail.util.MailSSLSocketFactory;

import org.apache.log4j.Logger;

import java.security.GeneralSecurityException;

import java.util.Properties;

/**

* Created by Mcin on 2017/5/18.

*/

public class ExMailUtil {

private static final Logger logger = Logger.getLogger(ExMailUtil.class);

// 这是腾讯企业邮箱的 如果是其他邮箱 自行更换

static String MAIL_TRANSPORT_PROTOCOL = "smtp"; //邮箱协议

static String MAIL_SMTP_HOST = "smtp.exmail.qq.com"; //发件服务器地址

static String MAIL_SMTP_PORT = "465"; // 端口

static String MAIL_SMTP_AUTH = "true"; //使用smtp身份验证

/**

* 邮箱配置

*/

public static Properties setTencentExEmail (){

Properties prop = new Properties();

//协议

prop.setProperty("mail.transport.protocol", MAIL_TRANSPORT_PROTOCOL);

//服务器

prop.setProperty("mail.smtp.host", MAIL_SMTP_HOST);

//端口

prop.setProperty("mail.smtp.port", MAIL_SMTP_PORT);

//使用smtp身份验证

prop.setProperty("mail.smtp.auth", MAIL_SMTP_AUTH);

//开启安全协议 使用SSL,企业邮箱必需!

MailSSLSocketFactory sf = null;

try {

sf = new MailSSLSocketFactory();

sf.setTrustAllHosts(true);

} catch (GeneralSecurityException e1) {

e1.printStackTrace();

}

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

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

return prop;

}

}

import org.apache.log4j.Logger;

import javax.mail.*;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.util.Date;

/**

* Created by mcin on 2017/5/18.

* 发送企业邮箱

*/

public class SendMail {

private static final Logger logger = Logger.getLogger(SendMail.class);

final static String TO_EMAIL_ADDRESS = "收件人账号邮箱"; // 收件人账号邮箱账号

final static String USER_NAME = "要登陆的企业邮箱账号"; // 要登陆的企业邮箱账号

final static String PASS_WORD = "要登陆的企业邮箱密码"; / /要登陆的企业邮箱密码

final static String SUBJECT = "这是企业邮箱发送的主题"; // 邮件主题

final static String CONTENT = "这是企业邮箱发送的内容"; // 邮件内容

static long startTime , endTime; // 用于计算发送的时间耗时

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

//获取Session对象

Session session = Session

.getDefaultInstance(

ExMailUtil

.setTencentExEmail(),

new Authenticator() {

//此访求返回用户和密码的对象

@Override

protected PasswordAuthentication getPasswordAuthentication() {

PasswordAuthentication pa = new PasswordAuthentication(USER_NAME, PASS_WORD);

return pa;

}

});

//设置session的调试模式,发布时取消

// session.setDebug(true);

/*

// 有循环的情况下,如果实现群发的功能 比如 收件人方可以显示到多少个收件用户的

MimeMessage mimeMessage = new MimeMessage(session);

mimeMessage.setFrom(new InternetAddress(userName,userName));*/

for (int i = 0; i <10 ; i++) {

// 有循环的情况下,实现单独发送的功能 收件人方只显示自己的邮箱

MimeMessage mimeMessage = new MimeMessage(session);

mimeMessage.setFrom(new InternetAddress(USER_NAME,USER_NAME));

mimeMessage.addRecipient(Message

.RecipientType

.TO,

new InternetAddress(

TO_EMAIL_ADDRESS

));

//设置主题

mimeMessage.setSubject(SUBJECT);

mimeMessage.setSentDate(new Date());

//设置内容

mimeMessage.setText(CONTENT);

mimeMessage.saveChanges();

logger.info("***开始发送第 "+(i+1)+" 个邮件***");

startTime = System.currentTimeMillis();

try {

//发送

Transport.send(mimeMessage);

endTime = System.currentTimeMillis();

logger.info("第 "+(i+1)+" 个发送成功***耗时:"

+(endTime - startTime)/1000+" 秒");

logger.info("-------------------------------------------------------------");

} catch (MessagingException e) {

logger.error(e.getMessage());

continue;

}

}

}

}

java 发送企业邮箱_java发送企业邮箱相关推荐

  1. java exchange发邮件_java发送exchange邮件问题

    /** * 发送邀请 * @param cycleModel*/ protected voidsendEmail(CycleMailModel cycleModel) { Properties pro ...

  2. Java短信频率_java发送短信系列之限制发送频率

    本篇是发送短信的第二部分, 这里我们介绍一下如何限制向同一个用户(根据手机号和ip)发送短信的频率. 1.使用session 如果是web程序, 那么在session中记录上次发送的时间也可以, 但是 ...

  3. java发送qq邮箱_Java 发送QQ邮箱邮件

    如果需要提供用户名和密码给e-mail服务器来达到用户认证的目的,你可以通过如下设置来完成: props.put("mail.smtp.auth", "true" ...

  4. java qq邮箱发送端口号_java实现qq邮箱的发送

    准备工作 开启PO3/SMTP服务 打开qq邮箱>账户 记住这串授权码 会用到 java发送qq邮箱实现步骤 创建一个javase的工程 3. 编写核心代码 我这里封装了 也可以不封装 /** ...

  5. java邮箱_java发送邮件(qq邮箱)

    完整的示例代码: package cn.sw.study.common.test; import javax.mail.Message; import javax.mail.Session; impo ...

  6. java连接qq邮箱_Java使用qq邮箱发邮件实现

    public class MailDemo1 { public static void main(String[] args) throws Exception{ Properties prop = ...

  7. java校验邮箱_Java正则表达式校验邮箱和手机号 | 学步园

    [html] import java.util.regex.Matcher; import java.util.regex.Pattern; public class CheckMobileAndEm ...

  8. java httpget 传参数_Java 发送http请求(get、post)

    1.情景展示 java发送get请求.post请求(form表单.json数据)至另一服务器: 可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等: 2.代码实现 所需ja ...

  9. java 判断是否为邮箱_java如何判断邮箱是否合法

    java如何判断邮箱是否合法 java判断邮箱是否合法的方法:使用正则表达式判断,代码为[boolean b=matcher.matches();if (b) {System.out.println( ...

最新文章

  1. 怎样找到适合自己的UI设计培训班
  2. SpaceX「十一手」火箭创纪录,一天内两次升空,马斯克:飞100次才退役
  3. linux script录屏文件夹,linux下录屏和回放工具script和scriptreplay
  4. 文件上传oss服务器
  5. 1.2 日期/时间的程序
  6. linux(系统centos6.5)常用命令总结
  7. SELECT TOP column FROM table [ORDER BY column [DESC]]
  8. spring中的controller种类
  9. Android之DrawText详解
  10. Mysql用户权限管理:Grank和Revoke
  11. 贺利坚老师汇编课程73笔记:键盘输入的处理过程
  12. Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  13. 软考中级软件设计师——数据库系统
  14. js经纬度坐标和度分秒互转
  15. chrome安装crxMouse鼠标右键手势插件后导致需要双击两次才能打开右键菜单
  16. 你真的会开会吗?开会无用说
  17. golang 实现微信授权
  18. 特征频率、最y大振荡频率、截止频率有什么关系和异同
  19. 《宅男的android开发指南》(翻译)--4
  20. TinEye图片搜索引擎

热门文章

  1. 付给铁匠的账单 数据结构
  2. HTML5 五种密码框
  3. 助力所有ERP初学者(转)
  4. 关于mybatis 的一些实验
  5. PHP.ini配置文件中文【转】
  6. 基于FPGA的频率计
  7. 基于matlab的MRC最大合并比误码率仿真,包括维特比译码,MRC,中继
  8. Hive 正则表达式 判断字符串是否是数字(整数)
  9. NVIDIA GTC 明日如约举行,持续 15 天,三万人已报名
  10. End-to-end people detection in crowded scenes