博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javax.mail发送邮件带附件
阅读量:6875 次
发布时间:2019-06-26

本文共 3155 字,大约阅读时间需要 10 分钟。

废话不多说直接上代码

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://snmfl.baihongyu.com/

你可能感兴趣的文章
Java常考面试题(经典)
查看>>
可能是迄今为止最好的GitHub代码浏览插件--赞
查看>>
ASP.NET Core 微服务初探[1]:服务发现之Consul
查看>>
HDU-1072 Nightmare BFS
查看>>
认清世界,认清自我,超凡脱俗
查看>>
在VC中向数据库提交SLQ语句
查看>>
如何在Fedora 22上面配置Apache的Docker容器
查看>>
Swift 控制流
查看>>
创新智慧矿山解决方案 广纳集团走绿色可持续发展之路
查看>>
深入浅出 FlatBuffers 之 Schema
查看>>
JavaScript 设计模式 : 生活中的'适配器'和'装饰者'模式
查看>>
Element源码分析系列3-Button(按钮)
查看>>
Django2 web实战01-启动项目
查看>>
js选择排序
查看>>
SpringBoot详解(四)-优雅地处理日志
查看>>
Glide 知识梳理(4) 自定义animate
查看>>
Android 注解系列之Annotation(二)
查看>>
如何绑定页面生命周期(二)-基于Android Architecture Components的Lifecycle实现
查看>>
互联网安全内容安全及防护
查看>>
element 学习借鉴 p1
查看>>