javax.mail发送邮件带附件
2015-06-16 14:48
531 查看
废话不多说直接上代码
所需jar包下载见附件
错误: java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因:javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,但是里面的方法与现在外面的mail.jar和activation.jar有一些出入
解决方法:用Java EE 6 Libraries替换javaEE5
参考博文:
http://www.cnblogs.com/xiandedanteng/p/4132201.html
http://blog.163.com/java_star/blog/static/11771480520136511023957/
package test; import java.io.File; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Message.RecipientType; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; /** * 邮件发送工具类 * * @author yuanhai * */ public class MailUtils { /** * 发送邮件的方法 * * @param to * :收件人 * @param code * :激活码 */ public static void sendMail(String to, String code) { /** * 1.获得一个Session对象. 2.创建一个代表邮件的对象Message. 3.发送邮件Transport */ // 1.获得连接对象 // 配置发送邮件的环境属性 /* * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host / * mail.user / mail.from */ final Properties props = new Properties(); // 表示SMTP发送邮件,需要进行身份验证 props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "smtp.126.com"); // 获取session,创建认证器,指定用户名和密码 Session session = Session.getInstance(props, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("jethai", "密码"); } }); // 2.创建邮件对象: Message message = new MimeMessage(session); try { message.setFrom(new InternetAddress("jethai@126.com"));// 设置发件人 message.addRecipient(RecipientType.TO, new InternetAddress(to));// 设置收件人 message.addRecipient(RecipientType.CC, new InternetAddress("jethai@163.com"));// 设置抄送,类型为抄送 message.addRecipient(RecipientType.BCC, new InternetAddress("934033381@qq.com"));// 设置抄送,类型为密送 // 设置标题 message.setSubject("测试邮件"); // 可以装载多个主体部件!可以把它当成是一个集合 MimeMultipart partList = new MimeMultipart(); message.setContent(partList);// 把邮件的内容设置为多部件的集合对象 // 创建一个部件 MimeBodyPart part1 = new MimeBodyPart(); // 给部件指定内容 part1.setContent("又是一封垃圾邮件", "text/html;charset=utf-8"); // 部件添加到集合中 partList.addBodyPart(part1); // 又创建一个部件 MimeBodyPart part2 = new MimeBodyPart(); // 为部件指定附件 part2.attachFile(new File("c:/图片.jpg")); // 指定附件文件的名字 // 使用MimeUtility.encodeText()对中文进行编码 part2.setFileName(MimeUtility.encodeText("大美女.jpg")); partList.addBodyPart(part2); // 3.发送邮件: Transport.send(message); } catch (Exception e) { e.printStackTrace(); } } // 接受邮箱地址和激活码 public static void main(String[] args) { sendMail("jethai@126.com", "123456"); } }其中密码换成你发件邮箱密码
所需jar包下载见附件
错误: java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
原因:javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,但是里面的方法与现在外面的mail.jar和activation.jar有一些出入
解决方法:用Java EE 6 Libraries替换javaEE5
参考博文:
http://www.cnblogs.com/xiandedanteng/p/4132201.html
http://blog.163.com/java_star/blog/static/11771480520136511023957/
相关文章推荐
- javax.mail包的官网下载地址
- javax.mail 发送邮件
- java发送javax.mail邮件实例讲解
- Java发送邮件javax.mail的实现方法
- 【MyECLIPSE】no actions available问题的解决
- java中如何忽略字符串中的转义字符--转载
- mybatis+spring+c3p0+maven+ehcache
- Eclipse中10个最有用的快捷键组合
- springMVC中的超链接传值与后台接受
- 如何学习struts并写第一个程序HelloWorld
- JavaWeb中如何自己创建一个servlet
- MAC下Eclipse的常用快捷键
- Java WebService 简单实例、调用第三方提供的webService服务
- java 实现冒泡排序
- Java - Race condition in Java multithreading
- java热部署
- Java图片转换为base64格式
- (转)Spring读书笔记-----Spring核心机制:依赖注入
- Java线程池
- Java的JAR包, EAR包 ,WAR包 都是干什么的,有什么区别