Java发送邮件

来源:互联网 发布:东航两飞机险相撞知乎 编辑:程序博客网 时间:2024/05/18 02:01

首先是要导包mail.jar,如果是JDK1.6(不含1.6)以下的版本,还要导入activation.jar,这两个包可以自行下载,也可以+qq:3393055725获取,文章有任何不清楚的地方也可qq聊。。。
java工程发送邮件和javaweb工程发送邮件在导包时有点小区别:
如果是java工程,直接导包就可以了,但是如果是javaweb工程,mail.jar可能会与javaee包中的mail包冲突,这时候可以删掉这个文件。

分三种情况介绍吧:
发送普通文本邮件、发送含图片的邮件、发送含附件的邮件
一、发送普通文本邮件:

public class TextMail{    public void sendMail() throws Exception{        // 配置邮件参数        Properties prop = new Properties();        prop.put("mail.transport.protocol", "smtp");    // 指定协议        prop.put("mail.smtp.host", "localhost");        // 主机   stmp.qq.com        prop.put("mail.smtp.port", 25);                 // 端口        prop.put("mail.smtp.auth", "true");             // 用户密码认证        prop.put("mail.debug", "true");                 // 调试模式        // 创建邮件会话        Session session = Session.getDefaultInstance(prop);        // 创建邮件体对象        MimeMessage message = new MimeMessage(session);        // 设置邮件体参数(标题、发送时间、发送人、接收人、邮件内容)        message.setSubject("标题");        message.setSendDate(new Date());        message.setSender(new InternetAddress("3393055725@qq.com"));        message.setRecipient(Recipient.To,new InternetAddress("cat_pp93@163.com"));        message.setText("邮件内容");        // 如果是设置超链接等html内容        message.setContent("<a href='www.baidu.com'>百度</a>","text/html,charset=UTF-8");        // 发送邮件        Transport trans = new Transport();        trans.connect("******","******"); // 发件人的账号密码        trans.sendMessage(message,message.getAllRecipients());        trans.close();    }}

二、发送带图片的邮件

// 只修改设置邮件体内容的部分// 构建多功能邮件块relatedMimeMultiPart related = new MimeMultipart("related");// 构建邮件块内容MimeBodyPart textContent = new MimeBodyPart();MimeBodyPart imgContent = new MimeBodyPart();// 设置文本内容textContent.setContent("textContent");// 设置图片内容// 获取图片内容开始    // 如果记不住可以倒着写,需要什么参数在上一步创建参数    String path = TextMail.class.getResource("007.jpg").getPath();    DataSource dataSource = new DataSource(new File(path));    DataHandler dataHandler = new DataHandler(dataSource);    imgContent.setDataHandler(dataHandler);// 获取图片内容结束// 设置图片名称,如果html内容需要时候使用imgContent.setContentId("007");textContent.setContent("<img src='cid:007' />","text/html,charset=UTF-8");//cid是固定写法related.addBodyPart(textContent);related.addBodyPart(imgContent);message.setContent(related);// 发送邮件……

三、发送带附件的邮件

// 在图片邮件基础上修改// 构建最大邮件块mixedMimeMultipart mixed = new MimeMultipart("mixed");MimeBodyPart relatedContent = new MimeBodyPart();MimeBodyPart fileContent = new MimeBodyPart();relatedContent.setContent(related);// 添加附件String filePath = this.getClass().getResource("file.docx").getPath();DataSource dataSource = new DataSource(new File(filePath));DataHandler dataHandler = new DataHandler(dataSource);fileContent.setDataHandler(dataHandler);// 设置附件名称fileContent.setFileName("file");mixed.addBodyPart(relatedContent);mixed.addBodyPart(fileContent);// 将图片邮件中的下面这段代码剪切过来message.setContent(mixed);// 发送邮件……

亲们,如果只是需要发送图片等资源或者附件邮件,可以将前面的代码copy之后用

1 0
原创粉丝点击