参考链接:http://www.runoob.com/java/java-sending-email.html

package test.mail;
import com.sun.mail.util.MailSSLSocketFactory; import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.util.Properties; /**
* @author
* Created by zhen on 2017-11-01.
*/
public class EmailUtil { public static void SendMail(MailConfig mailConfig, MailBody mailBody) throws Exception{ //获取系统属性
Properties properties = System.getProperties(); // 设置邮件服务器
properties.setProperty("mail.smtp.host", mailConfig.getHost()); Authenticator authenticator = null;
if(mailConfig.isAuth()){
//设置进行认证
properties.put("mail.smtp.auth", "true"); //设置认证参数
authenticator = new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(mailConfig.getUserName(), mailConfig.getPassword()); //发件人邮件用户名、密码
}
}; if(mailConfig.isQQ()){ //假如是QQ邮箱
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
}
} //获取默认的Session对象
Session session = Session.getDefaultInstance(properties, authenticator); //创建默认的MimeMessage对象
MimeMessage message = new MimeMessage(session); // set from: 头部字段
message.setFrom(new InternetAddress(mailConfig.getFrom())); //set To: 头部字段
String[] tos = mailConfig.getTOs();
String[] bccs = mailConfig.getBCCs();
String[] ccs = mailConfig.getCCs();
InternetAddress[] toAddress = new InternetAddress[tos.length];
InternetAddress[] bccAddress = new InternetAddress[bccs.length];
InternetAddress[] ccAddress = new InternetAddress[ccs.length];
for(int i = 0; i < tos.length; i++){
toAddress[i] = new InternetAddress(tos[i]);
}
for(int i = 0; i < bccs.length; i++){
bccAddress[i] = new InternetAddress(bccs[i]);
}
for(int i = 0; i < ccs.length; i++){
ccAddress[i] = new InternetAddress(ccs[i]);
}
message.addRecipients(Message.RecipientType.TO, toAddress);
message.addRecipients(Message.RecipientType.BCC, bccAddress);
message.addRecipients(Message.RecipientType.CC, ccAddress); // set Subject: 头字段
message.setSubject(mailBody.getSubject()); //创建消息部分
BodyPart messageBodyPart = new MimeBodyPart(); //消息
messageBodyPart.setContent(mailBody.getContent(), mailBody.getContentType()); //创建多重消息
Multipart multipart = new MimeMultipart(); //设置消息部分
multipart.addBodyPart(messageBodyPart); //附件部分
for(File attachment : mailBody.getAttachments()){
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachment);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(attachment.getName());
multipart.addBodyPart(messageBodyPart);
} //设置完整消息
message.setContent(multipart); //发送消息
Transport.send(message); } }
class MailConfig{
private String from;
private String[] TOs;
private String[] BCCs;
private String[] CCs;
private String host;
private boolean isAuth;
private String userName;
private String password;
private boolean isQQ; public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public String[] getTOs() {
return TOs;
} public void setTOs(String[] TOs) {
this.TOs = TOs;
} public String[] getBCCs() {
return BCCs;
} public void setBCCs(String[] BCCs) {
this.BCCs = BCCs;
} public String[] getCCs() {
return CCs;
} public void setCCs(String[] CCs) {
this.CCs = CCs;
} public String getHost() {
return host;
} public void setHost(String host) {
this.host = host;
} public boolean isAuth() {
return isAuth;
} public void setAuth(boolean auth) {
isAuth = auth;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public boolean isQQ() {
return isQQ;
} public void setQQ(boolean QQ) {
isQQ = QQ;
}
}
class MailBody{
private String subject;
private Object content;
private String contentType;
private File[] attachments; public String getSubject() {
return subject;
} public void setSubject(String subject) {
this.subject = subject;
} public Object getContent() {
return content;
} public void setContent(Object content) {
this.content = content;
} public String getContentType() {
return contentType;
} public void setContentType(String contentType) {
this.contentType = contentType;
} public File[] getAttachments() {
return attachments;
} public void setAttachments(File[] attachments) {
this.attachments = attachments;
}
} package test.mail; import com.sun.mail.util.logging.MailHandler; import java.io.File; import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties; /**
* @author
* Created by zhen on 2017-11-01.
*/
public class SendEmail { public void sendSimpleEmail(String[] args) { //收件人电子邮箱
String to = "18307006930@163.com"; //发件人电子邮箱
String from = "gz961012@126.com"; //指定发送主机
String host = "smtp.126.com"; //获取系统属性
Properties properties = System.getProperties(); // 设置邮件服务器
properties.setProperty("mail.smtp.host", host); //设置进行认证
properties.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(properties, new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("gz961012@126.com", "899496gz"); //发件人邮件用户名、密码
}
}); try{
//创建默认的MimeMessage对象
MimeMessage message = new MimeMessage(session); //set From;头部字段
message.setFrom(new InternetAddress(from)); //set To:头部字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //set Subject: 头部字段
message.setSubject("This is the Subject Line"); //设置消息体
message.setText("This is actual message"); //发送消息
Transport.send(message); }catch (Exception ex) {
ex.printStackTrace();
}
} public void sendHTMLEmail() { //收件人电子邮箱
String to = "18307006930@163.com"; //发件人电子邮箱
String from = "gz961012@126.com"; //指定发送主机
String host = "smtp.126.com"; //获取系统属性
Properties properties = System.getProperties(); // 设置邮件服务器
properties.setProperty("mail.smtp.host", host); //设置进行认证
properties.put("mail.smtp.auth", "true"); //获取默认的Session对象
Session session = Session.getDefaultInstance(properties, new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("gz961012@126.com", "899496gz"); //发件人邮件用户名、密码
}
}); try{
//创建默认的MimeMessage对象
MimeMessage message = new MimeMessage(session); // set from: 头部字段
message.setFrom(new InternetAddress(from)); //set To: 头部字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // set Subject: 头字段
message.setSubject("This is the Subject Line!"); //发送HTML消息,可以插入HTML标签
message.setContent("<h1><font color=\"red\">This is actual message</font><h1>", "text/html"); //发送消息
Transport.send(message); }catch(Exception ex) {
ex.printStackTrace();
} } public void sendWithAttachment(String[] args){
//收件人电子邮箱
String to = "18307006930@163.com"; //发件人电子邮箱
String from = "gz961012@126.com"; //指定发送主机
String host = "smtp.126.com"; //获取系统属性
Properties properties = System.getProperties(); // 设置邮件服务器
properties.setProperty("mail.smtp.host", host); //设置进行认证
properties.put("mail.smtp.auth", "true"); //获取默认的Session对象
Session session = Session.getDefaultInstance(properties, new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("gz961012@126.com", "899496gz"); //发件人邮件用户名、密码
}
}); try{
//创建默认的MimeMessage对象
MimeMessage message = new MimeMessage(session); // set from: 头部字段
message.setFrom(new InternetAddress(from)); //set To: 头部字段
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // set Subject: 头字段
message.setSubject("This is the Subject Line!"); //创建消息部分
BodyPart messageBodyPart = new MimeBodyPart(); //消息
messageBodyPart.setContent("<h1><font color=\"red\">This is actual message</font><h1>", "text/html"); //创建多重消息
Multipart multipart = new MimeMultipart(); //设置文本消息部分
multipart.addBodyPart(messageBodyPart); //附件部分
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource("file.txt"); //目录位置为项目的根路径 F:/test/file.txt
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("file.txt");
multipart.addBodyPart(messageBodyPart); //设置完整消息
message.setContent(multipart); //发送消息
Transport.send(message); }catch(Exception ex) {
ex.printStackTrace();
}
} public static void main(String[] args) {
MailConfig mailConfig = new MailConfig();
mailConfig.setAuth(true);
mailConfig.setHost("smtp.qq.com");
mailConfig.setTOs(new String[]{"18307006930@163.com"});
mailConfig.setBCCs(new String[]{"1580909730@qq.com"});
mailConfig.setCCs(new String[]{});
mailConfig.setUserName("3291984010@qq.com");
mailConfig.setFrom("3291984010@qq.com");
mailConfig.setPassword("ezmfkuhobxtqdbfi");
mailConfig.setQQ(true); MailBody mailBody = new MailBody();
mailBody.setSubject("一封测试邮件");
mailBody.setContent("你好吗?guoDaXia!");
mailBody.setContentType("text/plain;charset=UTF-8");
mailBody.setAttachments(new File[]{new File("file.txt")}); try {
EmailUtil.SendMail(mailConfig, mailBody);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

java发生邮件(转)的更多相关文章

  1. Java发邮件:Java Mail与Apache Mail

    作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例 ...

  2. Java实现邮件代理发送

    使用java实现邮件发送 首先需要添加jar文件mailapi.jarstmp.jar 1 import java.util.Properties; import javax.mail.Address ...

  3. 用java实现邮件发送验证码

    java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...

  4. 回顾2014 Java发生的5件大事

    回顾2014 Java发生的5件大事 1.2月1日:RedMonk分析师确认并宣布Java是最受欢迎和多样化的语言! 2014年,Java生态圈伴随着引擎的轰鸣起步,随着FOSDEM年会的Free J ...

  5. Java 实现邮件的发送

                                             Java 实现邮件的发送 开发邮箱发送功能必须看邮箱方面的资料 改一些东西  (我的是qq 邮箱哟   开通 POP3 ...

  6. java mail邮件发送(带附件) 支持SSL

    java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...

  7. Java实现邮件发送

      概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <depende ...

  8. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  9. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

随机推荐

  1. 【附10】kibana创建新的index patterns

    elk整体架构图: 一.logstash indexer 配置文件: input { stdin{} } filter { } output { elasticsearch { hosts => ...

  2. 论文笔记——Factorized Convolutional Neural Networks

    1. 论文思想 将3D卷积分解为spatial convolution in each channel and linear projection across channels. (spatial ...

  3. Ubuntu 添加,删除ppa

    PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpa ...

  4. SpringMVC实现多种数据类型绑定

    绑定基本数据类型 Java基本数据类型int的默认值是0,在使用int进行url传递参数时,参数key是必须写的,其值也只能是int类型的,否则将会报错. 比如方法: @RequestMapping( ...

  5. ubuntu下xx-net可用IP为0, ping6显示 Network is unreachable

    不知和xx-net有没有关系. 全新安装系统 sudo apt-get install miredo 这时, ping6 ipv6.google.com 是能ping通的 按github上依次安装py ...

  6. 30分钟了解Shiro与Springboot的多Realm基础配置

    写在前面的话: 我之前写过两篇与shiro安全框架有关的博文,居然能够广受欢迎实在令人意外.说明大家在互联网时代大伙对于安全和登录都非常重视,无论是大型项目还是中小型业务,普遍都至少需要登录与认证的逻 ...

  7. SpringBoot中的数据库连接池

    内置的连接池 目前Spring Boot中默认支持的连接池有dbcp,dbcp2, tomcat, hikari三种连接池. 数据库连接可以使用DataSource池进行自动配置. 由于Tomcat数 ...

  8. 12月10日 render( locals:{...}) 传入本地变量。

    Jdstor第一部分后台设计,4-4上传图片. 3.4 Using Partials--3.4.4 Passing Local Variables You can also pass local va ...

  9. codeforces 547c// Mike and Foam// Codeforces Round #305(Div. 1)

    题意:给出数组arr和一个空数组dst.从arr中取出一个元素到dst为一次操作.问每次操作后dst数组中gcd等于1的组合数.由于数据都小于10^6,先将10^6以下的数分解质因数.具体来说从2开始 ...

  10. The requested URL /phpmyadmin was not found on this server.

    这个报错,我弄了好久,第一次我以为我安装有问题,我就卸载重新安装了,但是在结果还是报这样子的错. 查找phpmyadmin的安装位置输入: sudo dpkg -L phpmyadmin 可以看到很多 ...