java发生邮件(转)
参考链接: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发生邮件(转)的更多相关文章
- Java发邮件:Java Mail与Apache Mail
作者:Vinkn 来自http://www.cnblogs.com/Vinkn/ 一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例 ...
- Java实现邮件代理发送
使用java实现邮件发送 首先需要添加jar文件mailapi.jarstmp.jar 1 import java.util.Properties; import javax.mail.Address ...
- 用java实现邮件发送验证码
java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...
- 回顾2014 Java发生的5件大事
回顾2014 Java发生的5件大事 1.2月1日:RedMonk分析师确认并宣布Java是最受欢迎和多样化的语言! 2014年,Java生态圈伴随着引擎的轰鸣起步,随着FOSDEM年会的Free J ...
- Java 实现邮件的发送
Java 实现邮件的发送 开发邮箱发送功能必须看邮箱方面的资料 改一些东西 (我的是qq 邮箱哟 开通 POP3 ...
- java mail邮件发送(带附件) 支持SSL
java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...
- Java实现邮件发送
概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <depende ...
- java spring 邮件发送
开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...
- 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】
一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...
随机推荐
- 【附10】kibana创建新的index patterns
elk整体架构图: 一.logstash indexer 配置文件: input { stdin{} } filter { } output { elasticsearch { hosts => ...
- 论文笔记——Factorized Convolutional Neural Networks
1. 论文思想 将3D卷积分解为spatial convolution in each channel and linear projection across channels. (spatial ...
- Ubuntu 添加,删除ppa
PPA,英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpa ...
- SpringMVC实现多种数据类型绑定
绑定基本数据类型 Java基本数据类型int的默认值是0,在使用int进行url传递参数时,参数key是必须写的,其值也只能是int类型的,否则将会报错. 比如方法: @RequestMapping( ...
- ubuntu下xx-net可用IP为0, ping6显示 Network is unreachable
不知和xx-net有没有关系. 全新安装系统 sudo apt-get install miredo 这时, ping6 ipv6.google.com 是能ping通的 按github上依次安装py ...
- 30分钟了解Shiro与Springboot的多Realm基础配置
写在前面的话: 我之前写过两篇与shiro安全框架有关的博文,居然能够广受欢迎实在令人意外.说明大家在互联网时代大伙对于安全和登录都非常重视,无论是大型项目还是中小型业务,普遍都至少需要登录与认证的逻 ...
- SpringBoot中的数据库连接池
内置的连接池 目前Spring Boot中默认支持的连接池有dbcp,dbcp2, tomcat, hikari三种连接池. 数据库连接可以使用DataSource池进行自动配置. 由于Tomcat数 ...
- 12月10日 render( locals:{...}) 传入本地变量。
Jdstor第一部分后台设计,4-4上传图片. 3.4 Using Partials--3.4.4 Passing Local Variables You can also pass local va ...
- codeforces 547c// Mike and Foam// Codeforces Round #305(Div. 1)
题意:给出数组arr和一个空数组dst.从arr中取出一个元素到dst为一次操作.问每次操作后dst数组中gcd等于1的组合数.由于数据都小于10^6,先将10^6以下的数分解质因数.具体来说从2开始 ...
- The requested URL /phpmyadmin was not found on this server.
这个报错,我弄了好久,第一次我以为我安装有问题,我就卸载重新安装了,但是在结果还是报这样子的错. 查找phpmyadmin的安装位置输入: sudo dpkg -L phpmyadmin 可以看到很多 ...