JavaMail发送邮件(含附件)的例子

来源:互联网 发布:骑行网站 知乎 编辑:程序博客网 时间:2024/04/29 14:17
转:http://blog.sina.com.cn/s/blog_3f0cd39a010006pa.html

package com.mogoko.common.email;import javax.mail.Session;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMultipart;import javax.activation.FileDataSource;import javax.activation.DataHandler;public class SendAttachMail {public static void sendMessage(String smtpHost,String from, String to,String subject, String messageText,String fileName)    throws MessagingException {// Step 1: Configure the mail sessionjava.util.Properties props = new java.util.Properties();props.setProperty("mail.smtp.auth", "true"); //指定是否需要SMTP验证props.setProperty("mail.smtp.host", smtpHost); //指定SMTP服务器props.put("mail.transport.protocol", "smtp"); //指定传输协议Session mailSession = Session.getDefaultInstance(props);mailSession.setDebug(false); //是否在控制台显示debug信息// Step 2: Construct the messageSystem.out.println("Constructing message - from=" + from + " to=" +to);InternetAddress fromAddress = new InternetAddress(from); //From MailInternetAddress toAddress = new InternetAddress(to); //To MailMimeMessage mimeMessage = new MimeMessage(mailSession);mimeMessage.setFrom(fromAddress);mimeMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);mimeMessage.setSentDate(new java.util.Date());mimeMessage.setSubject(subject);// Step 3: Create a body part to hold the "text" portion of the messageSystem.out.println("Constructing 'text' body part");MimeBodyPart textBodyPart = new MimeBodyPart();textBodyPart.setContent(messageText, "text/html;charset=gb2312");// Step 4: Create a body part to hold the "file" portion of the messageSystem.out.println("Attaching 'file' body part: " + fileName);MimeBodyPart fileBodyPart = new MimeBodyPart();FileDataSource fileDataSource = new FileDataSource("E:\\a.zip");fileBodyPart.setDataHandler(new DataHandler(fileDataSource));fileBodyPart.setFileName(fileDataSource.getName());//添加附件System.out.println("Finished attaching file");// Step 5: Create a Multipart/container and add the partsMultipart container = new MimeMultipart();container.addBodyPart(textBodyPart);container.addBodyPart(fileBodyPart);// Step 6: Add the Multipart to the actual messagemimeMessage.setContent(container);System.out.println("Message constructed");// Step 7: Now send the messageTransport transport = mailSession.getTransport("smtp");transport.connect(smtpHost, "biansutao", "password");transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());transport.close();System.out.println("Message sent!");}/* * 测试发送邮件 *///+++++++++++++++++++++++++++++++++++++++++++++++public static void main(String[] args) {String fileName = "b.zip";String smtpHost = "smtp.163.com";String from = "biansutao@163.com"; //必须与transport.connect(smtpHost, "username1", "pwd1");的username1一样String to = "biansutao@163.com";String subject = "邮件测试从mogoko"; //subject javamail自动转码StringBuffer theMessage = new StringBuffer();theMessage.append("邮件测试");try {SendAttachMail.sendMessage(smtpHost, from, to, subject,theMessage.toString(), fileName);} catch (javax.mail.MessagingException exc) {exc.p


0 0
原创粉丝点击