使用Java Mail发送邮件需要用到mail.jar和activation.jar(非必须),发送一个邮件的基本步骤是:
- 初始化一个Properties类,将邮件服务器相关属性以key,value的形式添加进去
- 根据Properties实例创建Session
- 根据Session创建Message,并且在Message中添加邮件的From,to,body, attachment等等
- 使用Transport.send(message)发送邮件
代码如下:
package com.jingshou.mail; import java.io.File; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class MailUtil { private static String host="smtp.gmail.com"; private static String port = "465"; private static String from = "10086@qq.com"; private static final String USER = "gmailaccount"; private static final String PASS = "gmailpassword"; private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; public static void main(String[] args) throws AddressException, MessagingException { String[] attachment = {"E:\\me.JPG"}; sendMail("8131****@qq.com", "Test Subject", "Test Content from Java with attachment", attachment); System.out.println("Email Send successfully"); } public static void sendMail(String to, String sub, String body, String[] attaches) throws AddressException, MessagingException{ Properties props = System.getProperties(); props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.socketFactory.class", SSL_FACTORY); props.put("mail.smtp.socketFactory.fallback", "false"); props.put("mail.smtp.port", port); props.put("mail.smtp.auth", "true"); // Create session by username and password Session session = Session.getDefaultInstance(props, new Authenticator(){ @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USER, PASS); } }); // Initialize Message Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); // Using message.setRecipients for To list message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(sub); message.setText(body); // Add attchment MimeBodyPart mbp = new MimeBodyPart(); mbp.setText(body); Multipart mpart = new MimeMultipart(); mpart.addBodyPart(mbp); if (attaches != null) { for (String fileName : attaches){ File file = new File(fileName); if (file.exists()) { mbp = new MimeBodyPart(); DataSource source = new FileDataSource(file); mbp.setDataHandler(new DataHandler(source)); mbp.setFileName(file.getName()); mpart.addBodyPart(mbp); System.out.println("The attached file name is: " + file.getName()); } } } message.setContent(mpart); // Sent by Transort.send() Transport.send(message); } }
运行程序发现发出邮件From始终是自己Gmail的帐号,而不是自己指定的地址
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2017611
相关推荐
Java通过Exchange协议发送邮件是Java开发中的一种常见需求,通过使用Exchange协议,可以实现Java程序与Exchange服务器之间的交互,实现发送邮件的功能。本文将详细介绍Java通过Exchange协议发送邮件的实现方法,并...
根据提供的信息,我们可以详细探讨如何使用Spring框架结合Velocity模板引擎来实现邮件的自动化发送功能。这一过程涉及到Spring框架的基本配置、Velocity模板引擎的使用以及JavaMail API的应用。 ### Spring框架与...
#### 八、小结 通过以上步骤,我们可以清晰地了解JavaMail API在处理邮件方面的强大功能。无论是简单的纯文本邮件发送还是复杂的带附件邮件,JavaMail都提供了完整的解决方案。同时,对于邮件的接收、查看和回复也...
根据艾瑞咨询的数据,2011年中国企业使用电子邮件系统的规模达到了500.8万家,同比增长了38.2%;2012年,电子邮件系统在国内企业的渗透率达到了20.2%,相比2011年提高了6.2%。这一趋势表明,随着企业对数据安全、...
1.1.4 小结 4 1.2 准备工作 4 1.2.1 在非Windows系统上安装 Python 3.1 5 1.2.2 使用Python Shell 5 1.3 开始使用Python——字符串 6 1.3.1 字符串概述 6 1.3.2 为什么需要引号 6 1.3.3 为什么有3种类型的引号 7 ...
5.4 e-mail发送程序 5.5 实现手机震动效果 5.6 图文提醒效果 5.7 状态栏提醒 5.8 检索通讯录 5.8.1 实现原理 5.8.2 contentprovider介绍 5.8.3 具体实现 5.9 文件管理 5.10 还原手机桌面 5.11 置换背景图 5.12 修改...
- 开发Java Mail实现邮件发送功能。 #### 三、JavaWeb应用简介 - **教学目标**: - 理解JavaWeb应用的基本概念。 - 掌握Servlet容器的工作原理。 - 学习如何安装和启动Tomcat服务器。 - 创建并部署简单的...
1.7 小结 29 第2章 数据、变量和计算 31 2.1 C++程序结构 31 2.1.1 程序注释 36 2.1.2 #include指令——头文件 37 2.1.3 命名空间和using声明 37 2.1.4 main()函数 38 2.1.5 程序语句 38 2.1.6 ...
本书内容主要包括:计算机网络的基础知识、Internet 的使用(互联网的接入方式、万维网、电子邮件、FTP 服 务) 、网络软件的应用(常用网络软件、网络工具)、网上生活(网上生活小区、网上营销、电子商务)、...