简单的邮件发送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 ...
随机推荐
- 在Centos中安装HustOJ实验记录
hustoj是目前使用最广泛的刷题平台,自建平台是编程教学中重要一环,教,学,测,反思形成闭合回路.目前利用现有的服务器资源,建成了开高开源code中心,一个刷题系统,六月再建一个私有云,私有云不仅是 ...
- 求n位水仙花数
求n位水仙花数 A.两个关键 1.n位水仙花数的范围是什么? n位水仙花数的范围是[10n-1,10n) 2.如何判断是否为水仙花数 核心操作: 2-1.如何得到每一位? A.核心思想 对得到的数进行 ...
- MyBatis入门学习笔记(一)
一.什么是MyBatis? Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL.存储过程以及高级映射. 二.hibernate和mybatis对比 共同:采用ORM思想解决了实体和数据库 ...
- 关于setTimeout(fn,0)
JS是单线程引擎:它把任务放到队列中,不会同步去执行,必须在完成一个任务后才开始另外一个任务. 浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javasc ...
- 日期和时间-time时间模块
时间的检测 #时间的检测 #导入时间模块 import time #返回当前时区与格林尼治所在时区的相差秒数(推荐) print(time.timezone) #输出结果:-28800 #返回当前时区 ...
- JVM 内存分析
简述JVM垃圾回收机制 垃圾回收机制时Java提供的自动释放内存空间的机制. 垃圾回收机制时JVM自导的一个线程,用于回收没有被引用的对象. JVM有一个运行时的数据区来管理内存.其主要包括五大部分: ...
- transition动画最简使用方式
HTML <a href="#" title="">test</a> CSS a {display:block; width:200px ...
- CodeForces - 603A-Alternative Thinking (思维题)
Kevin has just recevied his disappointing results on the USA Identification of Cows Olympiad (USAICO ...
- TPU的相关资料
1.谷歌 TPU 的强大与局限:TPU/GPU/CPU性能功耗全面对比:http://www.sohu.com/a/134315786_473283 2.谷歌发布TPU论文,75位联合作者,GPU迎来 ...
- C#数据类型 值传递和引用传递
/// <summary> /// 电脑类 /// </summary> public class Computer { public string Type { get; s ...