简单的邮件发送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 ...