邮件权限的开通以及java后台代码
来源:互联网 发布:nginx http2 不用TLS 编辑:程序博客网 时间:2024/05/16 08:19
1、首先对发件人的邮箱开启SMIT服务器以及获取授权码,开启历程参考百度
2、下载formail,邮箱地址以及授权码进行首次登录,
3、设置SMIT服务器账号和密码
设置好之后保存,之后就开启了服务器
4、后台代码,可复制直接用
package com.jf.test;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class SendMailBySSL {
private final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private String smtpServer; // SMTP服务器地址
private String port; // 端口
private String username; // 登录SMTP服务器的用户名
private String password; // 登录SMTP服务器的密码
private List<String> recipients = new ArrayList<String>(); // 收件人地址集合
private String subject; // 邮件主题
private String content; // 邮件正文
private List<String> attachmentNames = new ArrayList<String>(); // 附件路径信息集合
public SendMailBySSL() {
}
public SendMailBySSL(String smtpServer, String port, String username,
String password, List<String> recipients, String subject,
String content, List<String> attachmentNames) {
this.smtpServer = smtpServer;
this.port = port;
this.username = username;
this.password = password;
this.recipients = recipients;
this.subject = subject;
this.content = content;
this.attachmentNames = attachmentNames;
}
public void setSmtpServer(String smtpServer) {
this.smtpServer = smtpServer;
}
public void setPort(String port) {
this.port = port;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setRecipients(List<String> recipients) {
this.recipients = recipients;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setContent(String content) {
this.content = content;
}
public void setAttachmentNames(List<String> attachmentNames) {
this.attachmentNames = attachmentNames;
}
/**
* 进行base64加密,防止中文乱码
* */
public String changeEncode(String str) {
try {
str = MimeUtility.encodeText(new String(str.getBytes(), "UTF-8"),
"UTF-8", "B"); // "B"代表Base64
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
/**
* 正式发邮件
* */
public boolean sendMail() {
Properties properties = new Properties();
properties.put("mail.smtp.host", smtpServer);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.socketFactory.class", SSL_FACTORY); //使用JSSE的SSL socketfactory来取代默认的socketfactory
properties.put("mail.smtp.socketFactory.fallback", "false"); // 只处理SSL的连接,对于非SSL的连接不做处理
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.socketFactory.port", port);
Session session = Session.getInstance(properties);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
try {
// 发件人
Address address = new InternetAddress(username);
message.setFrom(address);
// 收件人
for (String recipient : recipients) {
System.out.println("收件人:" + recipient);
Address toAddress = new InternetAddress(recipient);
message.setRecipient(MimeMessage.RecipientType.TO, toAddress); // 设置收件人,并设置其接收类型为TO
/**
* TO:代表有健的主要接收者。 CC:代表有健的抄送接收者。 BCC:代表邮件的暗送接收者。
* */
}
// 主题
message.setSubject(changeEncode(subject));
// 时间
message.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
// 添加文本
BodyPart text = new MimeBodyPart();
text.setText(content);
multipart.addBodyPart(text);
// 添加附件
for (String fileName : attachmentNames) {
BodyPart adjunct = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(fileName);
adjunct.setDataHandler(new DataHandler(fileDataSource));
adjunct.setFileName(changeEncode(fileDataSource.getName()));
multipart.addBodyPart(adjunct);
}
// 清空收件人集合,附件集合
recipients.clear();
attachmentNames.clear();
message.setContent(multipart);
message.saveChanges();
} catch (Exception e) {
e.printStackTrace();
return false;
}
try {
Transport transport = session.getTransport("smtp");
transport.connect(smtpServer, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
List<String> recipients = new ArrayList<String>();
recipients.add("1836735020@qq.com");
// recipients.add("admin@zifangsky.cn");
String subject = "这封邮件是为了测试SMTP的SSL加密传输";
String content = "这是这封邮件的正文";
List<String> attachmentNames = new ArrayList<String>();
//添加附件
"775055015@qq.com", "itsmvlhlxxlsbfei", recipients, subject, content,
attachmentNames);
sendMailBySSL.sendMail();
}
}
2、下载formail,邮箱地址以及授权码进行首次登录,
3、设置SMIT服务器账号和密码
服务器是自动生成,如果没有生成手动输入
设置好之后保存,之后就开启了服务器
4、后台代码,可复制直接用
package com.jf.test;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class SendMailBySSL {
private final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private String smtpServer; // SMTP服务器地址
private String port; // 端口
private String username; // 登录SMTP服务器的用户名
private String password; // 登录SMTP服务器的密码
private List<String> recipients = new ArrayList<String>(); // 收件人地址集合
private String subject; // 邮件主题
private String content; // 邮件正文
private List<String> attachmentNames = new ArrayList<String>(); // 附件路径信息集合
public SendMailBySSL() {
}
public SendMailBySSL(String smtpServer, String port, String username,
String password, List<String> recipients, String subject,
String content, List<String> attachmentNames) {
this.smtpServer = smtpServer;
this.port = port;
this.username = username;
this.password = password;
this.recipients = recipients;
this.subject = subject;
this.content = content;
this.attachmentNames = attachmentNames;
}
public void setSmtpServer(String smtpServer) {
this.smtpServer = smtpServer;
}
public void setPort(String port) {
this.port = port;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setRecipients(List<String> recipients) {
this.recipients = recipients;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setContent(String content) {
this.content = content;
}
public void setAttachmentNames(List<String> attachmentNames) {
this.attachmentNames = attachmentNames;
}
/**
* 进行base64加密,防止中文乱码
* */
public String changeEncode(String str) {
try {
str = MimeUtility.encodeText(new String(str.getBytes(), "UTF-8"),
"UTF-8", "B"); // "B"代表Base64
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
/**
* 正式发邮件
* */
public boolean sendMail() {
Properties properties = new Properties();
properties.put("mail.smtp.host", smtpServer);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.socketFactory.class", SSL_FACTORY); //使用JSSE的SSL socketfactory来取代默认的socketfactory
properties.put("mail.smtp.socketFactory.fallback", "false"); // 只处理SSL的连接,对于非SSL的连接不做处理
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.socketFactory.port", port);
Session session = Session.getInstance(properties);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
try {
// 发件人
Address address = new InternetAddress(username);
message.setFrom(address);
// 收件人
for (String recipient : recipients) {
System.out.println("收件人:" + recipient);
Address toAddress = new InternetAddress(recipient);
message.setRecipient(MimeMessage.RecipientType.TO, toAddress); // 设置收件人,并设置其接收类型为TO
/**
* TO:代表有健的主要接收者。 CC:代表有健的抄送接收者。 BCC:代表邮件的暗送接收者。
* */
}
// 主题
message.setSubject(changeEncode(subject));
// 时间
message.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
// 添加文本
BodyPart text = new MimeBodyPart();
text.setText(content);
multipart.addBodyPart(text);
// 添加附件
for (String fileName : attachmentNames) {
BodyPart adjunct = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(fileName);
adjunct.setDataHandler(new DataHandler(fileDataSource));
adjunct.setFileName(changeEncode(fileDataSource.getName()));
multipart.addBodyPart(adjunct);
}
// 清空收件人集合,附件集合
recipients.clear();
attachmentNames.clear();
message.setContent(multipart);
message.saveChanges();
} catch (Exception e) {
e.printStackTrace();
return false;
}
try {
Transport transport = session.getTransport("smtp");
transport.connect(smtpServer, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
List<String> recipients = new ArrayList<String>();
recipients.add("1836735020@qq.com");
// recipients.add("admin@zifangsky.cn");
String subject = "这封邮件是为了测试SMTP的SSL加密传输";
String content = "这是这封邮件的正文";
List<String> attachmentNames = new ArrayList<String>();
//添加附件
// attachmentNames.add("C://Users//huahua.txt");
//775055015@qq.com为原发送邮件的邮箱,"itsmvlhlxxlsbfei"为开通发送邮件功能权限的时候生成的授权码
SendMailBySSL sendMailBySSL = new SendMailBySSL("smtp.qq.com", "465","775055015@qq.com", "itsmvlhlxxlsbfei", recipients, subject, content,
attachmentNames);
sendMailBySSL.sendMail();
}
}
阅读全文
0 0
- 邮件权限的开通以及java后台代码
- 后台自动发邮件--java代码
- java后台实现发送邮件的功能
- java发邮件的代码
- java的邮件发送代码
- Java的邮件发送、接收以及删除
- 为代码添加权限以及使用时的权限检查
- java mail接收邮件的示例代码
- java实现发邮件的代码
- java邮件发送的实现代码
- 关于邮件发送的 java代码
- 使用java代码实现邮件的发送
- ASP.NET后台发送邮件示范代码
- iOS推送的Java后台代码
- java发送邮件代码
- JAVA邮件发送代码
- JAVA群发邮件代码
- Java代码发送邮件
- VS2008--VS2013 各种版本官方下载地址
- 编程生成错误提示:无法解析的外部函数
- 经验分享 |【PDF下载】双11技术峰会之双11媒体大屏背后的数据技术
- Linux下profile、bashrc、bash_profile的区别
- Centos7 yum安装MongoDB
- 邮件权限的开通以及java后台代码
- axios 全攻略之基本介绍与使用(GET 与 POST)
- ArrayList初见
- Linux-IIC驱动(2)-Linux下IIC子系统的介绍
- OpenGL学习:坐标变换(1)-模型变换(model transformation)
- Linux下Tomcat的搭建以及开机自启动设置
- 保护你的网站免受这七大常见黑客攻击
- document.cookie在IE下不支持时,用sessionStorage配合解决
- [LWIP学习]--netconn结构体及其接口分析