参考链接: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. poj 2449 Remmarguts' Date 求第k短路 Astar算法

    =.=好菜 #include <iostream> #include <cstdio> #include <string.h> #include <cstri ...

  2. ASP.NET MVC之Bundle压缩JS和CSS

    介绍Bundle之前先引用<淘宝技术这十年>中一段话,对Web前端稍微有点常识的人都应该知道,浏览器下一步会加载页面中用到的CSS.JS(JavaScript).图片等样式.脚本和资源文件 ...

  3. UVa 225 黄金图形(回溯+剪枝)

    https://vjudge.net/problem/UVA-225 题意:平面上有k个障碍点,从(0,0)出发,第一次走1个单位,第二次走2个单位,...第n次走n个单位,最后恰好回到(n,n).每 ...

  4. zeptojs库解读2之事件模块

    第一,通过obj.addEventListener("click",fn)绑定的事件,你不能通过obj.onclick = null;来移除绑定点击事件的所有回调函数. 所以引入第 ...

  5. python enumerate用法总结--转载

    enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enum ...

  6. cropper图片剪裁 , .toBlob()报错

    问题描述: 使用 cropper.js 剪裁图片时, 调用 toBlob() 方法报错 $("#image").cropper('getCroppedCanvas').toBlob ...

  7. Ubuntu禁用触摸板

    参考链接: http://www.linuxidc.com/Linux/2012-08/68831.htm http://blog.sina.com.cn/s/blog_a3052b4a0100z4u ...

  8. html 画出矩形,鼠标弹起,矩形消失

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. 汇编语言调用Linux系统调用read和write

    .section .data UserMsg: .ascii "Please input the message:" LenOfUserMsg: .equ lenMsg, LenO ...

  10. [调试][程序打印]当printf不能用时,使用C++的不定参数来搞定OutputDebugString打印

    void _trace( char* str , ...) //类似printf{ va_list vlist; va_start(vlist , str ); char a [100] ; vspr ...