热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apache发送邮件和java自身发送邮件对比

apache发送邮件和java自身发送邮件对比
Java代码  
  1. import java.net.URL;     
  2. import java.util.Properties;     
  3.      
  4. import javax.activation.DataHandler;     
  5. import javax.activation.FileDataSource;     
  6. import javax.mail.Authenticator;     
  7. import javax.mail.BodyPart;     
  8. import javax.mail.Message;     
  9. import javax.mail.MessagingException;     
  10. import javax.mail.Multipart;     
  11. import javax.mail.PasswordAuthentication;     
  12. import javax.mail.Session;     
  13. import javax.mail.Transport;     
  14. import javax.mail.internet.InternetAddress;     
  15. import javax.mail.internet.MimeBodyPart;     
  16. import javax.mail.internet.MimeMessage;     
  17. import javax.mail.internet.MimeMultipart;     
  18.      
  19. import org.apache.commons.mail.DefaultAuthenticator;     
  20. import org.apache.commons.mail.Email;     
  21. import org.apache.commons.mail.EmailAttachment;     
  22. import org.apache.commons.mail.EmailException;     
  23. import org.apache.commons.mail.HtmlEmail;     
  24. import org.apache.commons.mail.MultiPartEmail;     
  25. import org.apache.commons.mail.SimpleEmail;     
  26. import org.junit.After;     
  27. import org.junit.Before;     
  28. import org.junit.Test;     
  29.      
  30. public class JavaMail {     
  31.        
  32.          
  33.     @Test     
  34.     public void defaultSendMail() throws Exception {     
  35.         String host = "smtp.sina.com";// "smtp.gmail.com"      
  36.         String port = "25"//"465"     
  37.         Properties props = new Properties();     
  38.         props.setProperty("mail.smtp.host", host);      
  39.         props.setProperty("mail.smtp.port", port);     
  40.         props.setProperty("mail.smtp.auth""true");     
  41.         props.setProperty("mail.smtp.ssl.enable""false");//"true"     
  42.         props.setProperty("mail.smtp.connectiontimeout""5000");     
  43.              
  44.         final String user = "***@sina.com";  //"***@gmail.com"     
  45.         final String pwd = "***";     
  46.         Session session = Session.getDefaultInstance(props, new Authenticator() {     
  47.             @Override     
  48.             protected PasswordAuthentication getPasswordAuthentication() {     
  49.                 //登录用户名密码     
  50.                 return new PasswordAuthentication(user,pwd);     
  51.             }     
  52.         });     
  53.         session.setDebug(true);     
  54.         Transport transport = session.getTransport("smtp");//"smtps"     
  55.         transport.connect(host,user,pwd);      
  56.         //消息     
  57.         MimeMessage message = new MimeMessage(session);     
  58.              
  59.         setMailContent(message);//。。。。。。。。。。。。。。。。。。     
  60.              
  61.         message.setSubject("邮件标题");     
  62.         //消息发送者接收者设置     
  63.         //message.setFrom(new InternetAddress(user,"发件人名称"));      
  64.         message.addRecipients(Message.RecipientType.TO,new InternetAddress[]{     
  65.                 new InternetAddress("to1@163.com","to1昵称"),     
  66.                 new InternetAddress("to2@163.com","to2昵称")     
  67.         });     
  68.         message.saveChanges();     
  69.              
  70.         //发送     
  71.         transport.send(message);     
  72.         //Transport.send(message);     
  73.              
  74.         transport.close();       
  75.              
  76.     }     
  77.          
  78.     //设定邮件内容     
  79.     private void setMailContent(MimeMessage message) throws MessagingException {     
  80.         //方法一:只有文本邮件     
  81.         //message.setContent("邮件内容..", "text/plain");//纯文本内容     
  82.         //方法二:添加附件的邮件     
  83.         Multipart part = new MimeMultipart();     
  84.              
  85.         BodyPart bodypart1 = new MimeBodyPart();     
  86.         bodypart1.setText("邮件内容");           
  87.         part.addBodyPart(bodypart1 );     
  88.              
  89.         BodyPart bodypart2 = new MimeBodyPart();     
  90.         bodypart2.setFileName("fileName");     
  91.         bodypart2.setDataHandler(new DataHandler(new FileDataSource("f:\\ok.txt")));     
  92.         part.addBodyPart(bodypart2);     
  93.              
  94.         message.setContent(part);     
  95.     }     
  96.      
  97.     @Test     
  98.     public void apacheSendMail() throws Exception {     
  99.         SimpleEmail email = new SimpleEmail();     
  100.         email.setHostName("smtp.gmail.com");     
  101.         email.setSSL(true);     
  102.         email.setSmtpPort(465);     
  103. //      email.setSslSmtpPort("465");     
  104.         email.setTLS(true);//gmail     
  105.         email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com""***"));     
  106.         email.setFrom("h***@gmail.com");     
  107.         email.setSubject("TestCommonMail");     
  108.         email.setCharset("gbk");     
  109.         //文本邮件     
  110.         email.setMsg("This is a test mail ... :-)");     
  111.              
  112.         email.addTo("**to@qq.com");     
  113.         email.send();      
  114.     }     
  115.      
  116.     @Test     
  117.     public void apacheSendHtmlMail() throws Exception {     
  118.         HtmlEmail email = new HtmlEmail();     
  119.         email.setHostName("smtp.gmail.com");     
  120.         email.setSSL(true);     
  121.         email.setSmtpPort(465);      
  122.         email.setTLS(true);//gmail     
  123.         email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com""***"));     
  124.         email.setFrom("h***@gmail.com");     
  125.         email.addTo("**to@qq.com");     
  126.         email.setSubject("TestCommonMail");     
  127.         email.setCharset("gbk");     
  128.         //html邮件     
  129.         String cid = email.embed(new URL("http://www.google.com.tw/intl/en_com/images/srpr/logo1w.png"), "google logo");     
  130.         email.setHtmlMsg("The logo - +cid+"'>");     
  131.              
  132.         email.send();      
  133.     }      
  134.          
  135.          
  136.     @Test     
  137.     public void apacheSendAttachMail() throws Exception {     
  138.         MultiPartEmail email = new MultiPartEmail();     
  139.         email.setHostName("smtp.gmail.com");     
  140.         email.setSSL(true);     
  141.         email.setSmtpPort(465);      
  142.         email.setTLS(true);//gmail     
  143.         email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com""***"));     
  144.         email.setFrom("h***@gmail.com");     
  145.         email.addTo("**to@qq.com");     
  146.         email.setSubject("TestCommonMail");     
  147.         email.setMsg("This is a test mail ... :-)");     
  148.         email.setCharset("gbk");     
  149.              
  150.         EmailAttachment attach = new EmailAttachment();     
  151.         attach.setName("attachFileName");     
  152.         attach.setPath("f:\\ok.txt");     
  153.         attach.setDescription(EmailAttachment.ATTACHMENT);     
  154.              
  155.              
  156.         email.attach(attach );     
  157.              
  158.         email.send();      
  159.     }      
  160. }    

推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
author-avatar
快乐的kang918_863
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有