- 浏览: 60157 次
- 性别:
- 来自: 四川
最新评论
啥也不说了,直接放代码,一切尽在代码中。。。
1、
要发送的邮件数据对象:
public class MailData { /** 发件人的用户名。 */ private String userName; /** 发件的密码。 */ private String password; /** 发件人的邮件地址 */ private String mailAddress; /** 收件人的地址列表。 */ private String[] receiveAddress; /** 发送的pop邮箱服务器地址。 */ private String smtp; /** 邮件主题。 */ private String subject; /** 邮件正文。 */ private String content; /** 邮件正文是否是纯文本。 */ private boolean isHtml; private File[] files; // get/set方法... }
public class MailSend { /** * 发送邮件。 * * @param data * 邮件内容对象。 * @throws Exception */ public void sendMail(final MailData data) throws Exception { Session session = this.getSession(data); Message msg = new MimeMessage(session); this.setMailMsg(msg, data); Transport.send(msg); } /** * 设置邮件信息。包括邮件内容、标题、发送者、接收者、附件等信息。 * * @param msg * Message对象。 * @param data * 邮件信息内容。 * @throws Exception */ private void setMailMsg(Message msg, MailData data) throws Exception { // 设置邮件接收者。 msg.addRecipients(Message.RecipientType.TO, Utils.toAddress(data.getReceiveAddresses())); // 设置邮件发送者。 msg.setFrom(Utils.toAddress(data.getSendAddress())); // 设置邮件的标题。这里最好使用setHeader的方式,使用setSubject的方式无法指定编码格式,其它语言可能会乱码。 // 如果这里的标题太长了的话,始终会有一部分会是乱码。这点还不知道如何修改。 msg.setHeader("Subject", MimeUtility.encodeText(data.getSubject(), "utf-8", "B")); // msg.setSubject(data.getSubject()); Multipart multipart = new MimeMultipart(); this.setMailContentPart(data, multipart); msg.setContent(multipart); } /** * 设置邮件正文和附件。 * * @param data * 邮件的信息内容。 * @param multipart * 邮件的对象。 */ private void setMailContentPart(MailData data, Multipart multipart) throws Exception { // 设置邮件内容。 MimeBodyPart bPart = new MimeBodyPart(); if (data.isHtml()) { bPart.setContent(data.getContent(), "text/html;charset=UTF-8"); } else { // 以text设置时要设置编码方式,最好为utf-8,不然其它语言可能乱码。 bPart.setText(data.getContent(), "utf8"); } multipart.addBodyPart(bPart); // 设置邮件附件。 if (data.getFiles() != null) { for (File f : data.getFiles()) { if ((f != null) && f.isFile()) { bPart = new MimeBodyPart(); DataSource source = new FileDataSource(f); bPart.setDataHandler(new DataHandler(source)); // 设置文件名时要设置编码,不然会乱码的。最好指定编码格式为utf8 bPart.setFileName(MimeUtility.encodeText(f.getName(), "utf-8", "B")); multipart.addBodyPart(bPart); } } } } /** * 根据邮件的服务器信息获取Session对象。 * * @param data * 邮件的服务器信息对象。 * @return 返回获取的Session对象。 */ private Session getSession(final MailData data) { Properties pro = new Properties(); // 设置邮件发送smtp服务器。 pro.put("mail.smtp.host", data.getSmtp()); // 设置发送邮件需要验证身份 pro.put("mail.smtp.auth", "true"); // 发送邮件的身份认证对象。 Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(data.getUserName(), data.getPassword()); } }; return Session.getDefaultInstance(pro, auth); } }
发表评论
-
struts2 中获取 web资源的方式
2016-01-08 17:02 475在struts2中获取 web资源的方式大致可分为获取扩展 ... -
sql server、db2、oracle 存储过程动态sql语句示例
2015-01-31 19:00 1793Oracle CREATE OR REPLACE PRO ... -
ie9 中出现不明的异常(参数是必选项 (Argument not optional)、尚未实现)等
2015-01-27 23:57 1271<script type="text/jav ... -
SAXParseException: The content of element type "configuration" must match
2014-09-15 23:57 1926在mybatis的配置文件中新增加<databaseI ... -
java.lang.ClassNotFoundException: Cannot find class: DB_VENDOR
2014-09-15 23:45 1932在mybatis 中使用databaseIdProvide ... -
spring mvc3 + fastjson 转换 REST 参数以及输出
2014-03-27 00:16 4194spring 3可以支持Rest风格参数,其内置了jack ... -
eclipse中编辑log4j 的xml配置文件时,自动提示
2014-03-27 00:05 843方法1. 配置log4j.dtd文件: Windows - ... -
java json 转换之 Jackson 框架
2013-08-01 21:50 1114转自:http://www.cnblogs.com/hooj ... -
eclipse/myeclise 自定义注释中的变量名称
2013-07-01 23:18 939eclipse/myeclipse中自带了 ... -
Eclipse Class Decompiler——Java反编译插件
2012-11-08 22:41 1206Eclipse Class Decompiler,整 ... -
struts+spring+hibernate整合问题解决方法 陆续更新中....
2009-01-01 10:33 845在整合ssh过程中出现的问题和解决方法: 一、 严重: Ser ... -
DWR通过Annotation与spring整合
2009-01-21 22:05 636DWR 2.0 增加了一个很有趣的新特性,Annotat ... -
div嵌套页面 div加载页面 (其中获取目标页面的内容是用dwr框架连接java程序做的)
2009-03-15 16:58 630前段时间因为有需要,要在div中加载一个页面。但是以前没做过, ... -
tapestry autocomplete 更改样式及定位
2009-07-09 19:02 682版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文 ... -
Java中的main()方法详解
2009-07-12 16:23 609源文作者:leizhimin 源文链接:http:/ ... -
tapestry5 集成 spring 的事务管理
2009-07-22 15:43 558说明:使用的是tapestry5.1.0.5 和spring ... -
tapestry5 布局 参数的处理
2009-07-23 17:24 378<?xml version="1.0" ... -
tapestry不支持 等html特殊符号的解决方法
2009-07-23 17:34 481在使用tapestry时,偶然发现使用 &a ... -
WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
2009-07-28 15:01 402转自:http://space.itpub.net ... -
WebService大讲堂之Axis2(2):复合类型数据的传递
2009-07-28 15:25 472转自:http://space.itpub.net/12921 ...
相关推荐
利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋
java Mail 发送邮件及邮件附件 java Mail 发送邮件及邮件附件
使用 java mail 发送邮件
java mail 发送邮件源代码以及所需要的两个架包。 附件代码以腾讯企业邮箱发送邮件为例子,其它邮箱只要支持SMTP服务即可。只要懂点JAVA就能看懂。
java mail详细发送邮件代码
MAIL. JAVA POP3 SMTP imap 发送邮件
用java mail发邮件源码,支持多种邮局,支持单发和群发。
包含文件: activation.jar mail.jar SendMail.java
Java实现发送邮件脚本。以及需要调用的全部Jar包。
为了以后使用java发送邮件的需要。结合网上案例做了一个demo程序。javamail发送邮件确实是一个比较麻烦的问题。该demo 程序可以直接用于邮件的发送.
java 发送邮件 spring发送邮件Mail
只需简单赋几个值便可实现发送邮件,里边有源代码、全有注释,可直接在main方法内测试发送,非常易学实用
java mail发送qq邮件的一个例子,谢谢大家的支持
也许很多 同道遇到和我一样的问题,建了个web项目,写一堆代码,结果一运行老是报错!!!上网查了查,知道了原因,修改了还是不行。...如果还没有成功,你可以给我发邮件973203075@qq.com,我可以把项目也给你!!
JavaMail用到的jar包,一共3个。下载之后要放到libs目录下,然后右击工程,选择Builder Path--》Configure Build Path,Libraries,Add JARs,选择工程目录下的libs下的jar包。
java发送附件mail, 包阔多附件,文本mail,以及网页mail.
基于javax.mail的邮件发送测试工具