Java发邮件简单实现

给出一个Java发送邮件的简单实现。

下载

Java代码  

  1. 1、  接口
  2. public interface MailSendServDu {
  3. public void sendEmail(String addressee, String subject, String content);
  4. }
  5. 2、  实现
  6. import javax.mail.*;
  7. import javax.mail.internet.InternetAddress;
  8. import javax.mail.internet.MimeMessage;
  9. import java.util.Date;
  10. import java.util.Map;
  11. import java.util.Properties;
  12. /**
  13. * 邮件发送接口
  14. * @param
  15. * @author Wu Jianguo
  16. * @version V1.0
  17. * @Description:
  18. * @modificationHistory=================重大变更调整记录
  19. * @modify by user: Wu Jianguo
  20. * @modify by reason:{方法名}:{原因}
  21. * @return
  22. * @throws
  23. */
  24. public class MailSendServDuImpl implements MailSendServDu{
  25. private Logger logger = Logger.getLogger(this.getClass());
  26. // 初始化连接邮件服务器的会话信息
  27. private Properties properties = null;
  28. // 创建Session实例对象
  29. private Session session = null;
  30. String fromAddress = null;
  31. String fromName = null;
  32. String charset = null;
  33. public MailSendServDuImpl() {
  34. logger.info("发送邮件相关配置初始化.......");
  35. Map<String,String> map = PropertiesUtils.getPropertiesValues("/properties/mail.properties");
  36. String turnon = map.get("mail.turnon");
  37. if (Boolean.parseBoolean(turnon)) {
  38. String protocol = map.get("mail.protocol");
  39. fromAddress = map.get("mail.fromAddress");
  40. fromName = map.get("mail.fromName");
  41. String host = map.get("mail.host");
  42. String port = map.get("mail.port");
  43. String auth = map.get("mail.auth");
  44. String username = map.get("mail.username");
  45. String password = map.get("mail.password");
  46. String debug = map.get("mail.debug");
  47. charset = map.get("mail.charset");
  48. properties = new Properties();
  49. properties.setProperty("mail.transport.protocol", protocol);
  50. properties.setProperty("mail.smtp.host", host);
  51. properties.setProperty("mail.smtp.port", port);
  52. properties.setProperty("mail.smtp.auth", auth);
  53. properties.setProperty("mail.debug", debug);
  54. if (Boolean.parseBoolean(auth)) {
  55. session = Session.getDefaultInstance(properties, new HatomAuthenticator(username, password));
  56. } else {
  57. session = Session.getDefaultInstance(properties, new HatomAuthenticator());
  58. }
  59. }
  60. }
  61. @Override
  62. public void sendEmail(String addressee, String subject, String content) {
  63. logger.info("发送邮件");
  64. MailSendServDuImpl ps = new MailSendServDuImpl();
  65. try {
  66. if (null != properties) {
  67. // 创建MimeMessage实例对象
  68. MimeMessage message = new MimeMessage(session);
  69. // 设置发件人
  70. message.setFrom(new InternetAddress(fromAddress, fromName));
  71. // 设置邮件主题
  72. message.setSubject(subject);
  73. // 设置收件人
  74. message.setRecipient(Message.RecipientType.TO, new InternetAddress(addressee));
  75. // 设置发送时间
  76. message.setSentDate(new Date());
  77. // 设置html内容为邮件正文,指定MIME类型为text/html类型,并指定字符编码
  78. message.setContent(content, "text/html;charset=" + charset);
  79. // 保存并生成最终的邮件内容
  80. message.saveChanges();
  81. // 发送邮件
  82. Transport.send(message);
  83. }
  84. } catch (Exception e) {
  85. System.err.println(e.getMessage());
  86. logger.info("发送邮件异常");
  87. }
  88. }
  89. 下载
  90. /**
  91. * 向邮件服务器提交认证信息
  92. */
  93. class HatomAuthenticator extends Authenticator {
  94. private String username;
  95. private String password;
  96. public HatomAuthenticator() {
  97. super();
  98. }
  99. public HatomAuthenticator(String username, String password) {
  100. super();
  101. this.username = username;
  102. this.password = password;
  103. }
  104. @Override
  105. protected PasswordAuthentication getPasswordAuthentication() {
  106. return new PasswordAuthentication(username, password);
  107. }
  108. }
  109. }
  110. 3、  配置文件
  111. # 是否打开邮件发送
  112. mail.turnon=true
  113. # 邮件发送协议
  114. mail.protocol=smtp
  115. # 发信邮箱
  116. mail.fromAddress=XXXX@163.com
  117. # 发信人
  118. mail.fromName=XX
  119. # smtp端口号
  120. mail.host=smtp.163.com
  121. mail.port=25
  122. # 是否需要验证
  123. mail.auth=true
  124. # smtp账号
  125. mail.username=XXXX@163.com
  126. # smtp密码
  127. mail.password=
  128. # 调试级别,0 关闭,1 一般,2较高
  129. mail.debug=0
  130. # 编码
  131. mail.charset=UTF-8
时间: 2024-09-29 09:42:51

Java发邮件简单实现的相关文章

Java发邮件:Java Mail与Apache Mail

一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如[email protected] 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate [email protected] 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务

Java Mail---SMTP协议-Java发邮件(带附件)演示过程

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] JavaMail-API简介: 邮件客户端的主要任务是向邮件服务器发送邮件,以及接收来自邮件服务器的邮件. Sun公司制定了一套API,它封装了邮件通信的各种协议.为Java开发者提供了收发电子邮件的公共接口. 需要的jar包 mail.jar和activation-1.1.0.jar链接: https://github.com/chenhaoxiang/Java/tree/ma

阿里云服务器25端口禁用之如何使用Java发邮件(解决25端口禁用问题)

通常我们在本地使用Java发送邮件,通常是没有问题的,但是部署到服务器的话,就可能遇到问题.当然了,这与运营商也有关系.比如我之前在咖啡主机上购买虚拟机,然后将个人网站部署上去,通常是没有问题的,没有那么多限制. 但是在阿里云上限制就比较多,比如如果端口的入口方向不开的话,可能导致你在服务器上安装的某款软件,例如常用的Tomcat,会无法使用. 一来端口没有开放,二来白名单设置问题. 今天说说阿里云服务器25端口禁用之如何解决它并成功发送邮件,首先贴完整代码,如下所示: package com.

java 发邮件

//先从oracle 下载mail.jarpackage test; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.*; import java.util.*; import javax.activation.*

java发邮件带附件实例

package cn.bric.crm.util; import java.util.Date; import java.util.Enumeration; import java.util.Properties; import java.util.Vector; import javax.activation.*; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Multipart; i

Java发邮件带附件测试通过

package cn.bric.crm.util; import java.util.Date; import java.util.Enumeration; import java.util.Properties; import java.util.Vector; import javax.activation.*; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Multipart; i

通过java代码发邮件

用java发邮件,必须要导入新的包 mail.jar – 发邮件的核心包 activation.jar – 对用户和密码加密. 在mail.jar中有三个核心类: Javax.mail.Session – 是指与邮件服务器会话.整个项目中只要一个就可以了. Javax.mail.Message(接口)  - 准备发送数据信息. MimeMessage - 可以设置类型的数据信息. Transport – 它拥有一个方法可以发送Message. 第一步:导入两个jar包 第二步:发简单的邮件 @T

java windows自动化-mail自动发邮件

本文旨在让测试人员了解如何发邮件 发邮件的话,最简单的事是直接手动发邮件,但是在自动化测试中,应做到让机器或者代码来自动发送邮件,笔者大概了解以下几种方法,总有一款口味适合你:1java代码来做下面即为我的java代码package util;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.*;import javax.mail.internet.*;impo

Java:发邮件

java 发邮件,有监控需要发送邮件到op通知很简单 直接调用 SendMail2.sendMail("[email protected]","报警信息") package com.stevezong.sendMail; import java.io.IOException; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.BodyPart; import