简单的邮件发送mail.jar
public class MailSender {
final static Logger logger = Logger.getLogger(MailSender.class);
/**
* 发送简单邮件
* @param str_from:发件人地址
* @param str_to:收件人地址
* @param str_title:邮件标题
* @param str_content:邮件正文
* @param emailPwd:邮件密码
*/
@SuppressWarnings("finally")
public static void send(String str_to, String str_title,String str_content){
boolean flog=false;
logger.info("sending... To: " + str_to + " Mail Title: " + str_title + " fileAttachment: " + str_content);
Properties props = new Properties();
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
try {
props.load(classLoader.getResourceAsStream("mail.properties")); //使用property读取文件
} catch (IOException e) {
e.printStackTrace();
}
String str_from = props.getProperty("mail.from");
String emailPwd = props.getProperty("mail.password");
final String mailServer_163 = props.getProperty("mail.smtp.163.mailServer");
final String mailServer_qq = props.getProperty("mail.smtp.qq.mailServer");
final String mailServer_Sina = props.getProperty("mail.smtp.sina.mailServer");
String mailServer = "";
String emailType = Tools.subString(str_from, "@"); //截取@前
String eName = Tools.subberString(str_from,"@");
if (emailType.trim() != "" && emailType.equals("qq.com")) {
mailServer = mailServer_qq;
}
if (emailType.trim() != "" && emailType.equals("163.com")) {
mailServer = mailServer_163;
}
if (emailType.trim() != "" && emailType.equals("sina.com.cn")) {
mailServer = mailServer_Sina;
}
if (emailType.trim() != "" && emailType.equals("sina.com")) {
mailServer = mailServer_Sina;
}
// 存储发送邮件服务器的信息
props.put("mail.smtp.host", mailServer);
// 同时通过验证
props.put("mail.smtp.auth", "true");
// 根据属性新建一个邮件会话
Session s = Session.getInstance(props);
s.setDebug(true); // 有他会打印一些调试信息。
// 由邮件会话新建一个消息对象
MimeMessage message = new MimeMessage(s);
// 设置邮件
InternetAddress from = null;
try {
from = new InternetAddress(str_from);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // pukeyouxintest2@163.com
try {
message.setFrom(from);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 设置发件人的地址
// //设置收件人,并设置其接收类型为TO
InternetAddress to = null;
try {
to = new InternetAddress(str_to);
} catch (AddressException e) {
e.printStackTrace();
}
try {
message.setRecipient(Message.RecipientType.TO, to);
// 设置标题
message.setSubject(str_title); // java学习
// 设置信件内容
// message.setText(str_content); //发送文本邮件 //你好吗?
message.setContent(str_content, "text/html;charset=gbk"); // 发送HTML邮件
// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
Transport transport = null;
try {
transport = s.getTransport("smtp");
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
try {
transport.connect(mailServer, eName, emailPwd) ;
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件,其中第二个参数是所有已设好的收件人地址
try {
transport.sendMessage(message, message.getAllRecipients());
} catch (MessagingException e) {
e.printStackTrace();
}
try {
transport.close();
} catch (MessagingException e) {
e.printStackTrace();
}
}
/**
* 异步发送邮件的方法*/
public static void sendMailByAsynchronous(final String str_to, final String str_title, final String str_content) throws Exception{
new Thread(new Runnable() {
public void run() {
try {
MailSender.send(str_to, str_title, str_content);
} catch (Exception ex) {
logger.error("mail sender error To: " + str_to
+ " Mail Title: " + str_title + " fileAttachment: "
+ str_content, ex);
}
}
}).start();
}
}
mail.properties
mail.smtp.163.mailServer=smtp.163.com mail.smtp.qq.mailServer=smtp.qq.com mail.smtp.sina.mailServer=smtp.sina.com.cn mail.username=asd mail.password=123456 mail.from=asd@163.com
Tool.java
public class Tools {
public static String subString(String content,String start){
String subConetent=content.substring(content.indexOf(start)+1, content.length());
return subConetent;
}
public static String subberString(String content,String end){
String subConetent=content.substring(0,content.indexOf(end));
return subConetent;
}
}
调用方法:
MailSender.sendMailByAsynchronous("123@126.com","topic:"+a.getAskTitle(), "content:"+a.getAskContent()+"/n请你及时回复");
jar包:mai.jar
简单的邮件发送mail.jar的更多相关文章
- java简单的邮件发送
java实现简单的邮件发送案例,学会了这个你就可以利用这个来整你的好友了,不断地给他进行邮箱轰炸(当然个人不建议瞎搞),最重要的是明白其中的原理最好了.话不多说,直接看代码案例了.首先需要导入的jar ...
- .Net(C#)最简单的邮件发送案例
一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...
- mailto - 简单多媒体邮件发送程序
SYNOPSIS mailto [-a] [-c] [-s] [recipient name(s)] DESCRIPTION mailto 程序是一个用于发送MIME格式的多媒体邮件(MIME格式是 ...
- 发送邮件(遵循smtp协议即简单的邮件发送协议)
HandleSendEmail.aspx逻辑 protected void Page_Load(object sender,EventArgs e) { foreach(var item in Req ...
- [PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
1. php的mail()函数是可以发送邮件的 , 但是一直就没有测试成功过 , 现在总结一下原因 : php的mail函数 基于sendmail命令来发送 , sendmail命令需要安装postf ...
- [vb.net]最简单的邮件发送
Imports Microsoft.Office.Interop.Outlook Private Sub sendMail() Dim outObj As New Application Dim it ...
- 通过smtp协议简单实现邮件发送
使用到的类: ①SmtpClient--发送邮件的类(using System.Net.Mail;) ②MailMessage--初始化邮件的类 ③ NetworkCredential--身份验证的类 ...
- C#真他妈神奇,一个函数都不用写就能实现一个简单的邮件发送工具
MailMessage EmaillMessage = new MailMessage( //创建一个对象 new MailAddress(loning.Te ...
- Java Mail 邮件发送Demo
上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以我就写成了一遍教程,顺便巩固下邮件发送里面的内容. Demo ...
随机推荐
- js 实现ajax(get和post)
get和post的区别:1.GET产生一个TCP数据包:POST产生两个TCP数据包. 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据): 而 ...
- ps色彩混合
http://tieba.baidu.com/p/2032536851?pn=1 HSB 这是一种颜色的表示方法:其中"H"表示色相,"S"表示饱和度,&quo ...
- 关于unity中BindChannels的理解
http://blog.csdn.net/wpapa/article/details/51794277 官方文档:http://docs.unity3d.com/Manual/SL-BindChann ...
- 深入Java集合学习系列:HashSet的实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. 2. H ...
- SWT的基本组件使用
1按钮组件(Button) (1)Button组件常用样式 SWT.PUSH按钮 SWT.CHECK多选按钮 SWT.RADIO单选按钮 SWT.ARROW箭头按钮 SWT.NONE默认按钮 SWT. ...
- 使用JMETER进行REST API测试
我确定你在这里是因为你需要加载测试Json Rest API.这并不奇怪,因为Rest API现在越来越受欢迎. 这本指南的目的:帮助您进行负载测试一个Json的 REST API 通过一个具体的例子 ...
- [Android]解决 Could not read entry xxx from cache taskArtifacts.bin
Bug 出现 事情是这样的,昨天早晨我正做着项目,坐在我旁边的小伙伴呼唤了我一下,说项目运行不起来了. 我纳闷着,前天的时候还好好的,怎么过了一晚就出问题了.我问他是不是改了什么配置,或者添加了什么东 ...
- 牛客假日团队赛2 H.奶牛排序
链接: https://ac.nowcoder.com/acm/contest/924/H 题意: 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便于行动.因为脾 ...
- hdu1175-连连看(dfs)
一个一个走,记录方向改变了几次,不能超过两次,两次如果还没到终点return: #include<cstdio> #include<string.h> #define inf ...
- 使用docker save load 的时候的一个小问题
当你使用docker save image_id > aa.tar ; 然后再使用 docker load < aa.tar 时, 你会发现此时导入的镜像的repository和 tag ...