« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9705231 建立时间:2004年12月20日 |

| |
[java语言]javamail发送带有附件的html邮件 原创空间, 软件技术
邢红瑞 发表于 2005/10/4 20:21:42 |
package org.tatan.mail;
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 session java.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(true);//是否在控制台显示debug信息
// Step 2: Construct the message System.out.println("Constructing message - from=" + from + " to=" + to); InternetAddress fromAddress = new InternetAddress(from); InternetAddress toAddress = new InternetAddress(to);
MimeMessage testMessage = new MimeMessage(mailSession); testMessage.setFrom(fromAddress); testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress); testMessage.setSentDate(new java.util.Date()); testMessage.setSubject(subject);
// Step 3: Create a body part to hold the "text" portion of the message System.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 message System.out.println("Attaching 'file' body part: " + fileName); MimeBodyPart fileBodyPart = new MimeBodyPart(); FileDataSource fds = new FileDataSource("c:\\a.rar"); fileBodyPart.setDataHandler(new DataHandler(fds)); fileBodyPart.setFileName(fds.getName()); System.out.println("Finished attaching file");
// Step 5: Create a Multipart/container and add the parts Multipart container = new MimeMultipart(); container.addBodyPart(textBodyPart); container.addBodyPart(fileBodyPart);
// Step 6: Add the Multipart to the actual message testMessage.setContent(container); System.out.println("Message constructed");
// Step 7: Now send the message Transport transport = mailSession.getTransport("smtp"); transport.connect(smtpHost, "webmaster", "password"); transport.sendMessage(testMessage, testMessage.getAllRecipients()); transport.close();
System.out.println("Message sent!"); }
public static void main(String[] args) {
String fileName = "a.rar"; String smtpHost = "localhost"; String from = "webmaster@mymail.com"; String to = "mfc42d@sohu.com"; String subject = "html邮件附件测试"; //subject javamail自动转码 StringBuffer theMessage = new StringBuffer(); theMessage.append("<h2><font color=red>这倒霉孩子</font></h2>"); theMessage.append("<hr>"); theMessage.append("<i>年年失望年年望</i>");
try { SendAttachMail.sendMessage(smtpHost, from, to, subject, theMessage.toString(), fileName); } catch (javax.mail.MessagingException exc) { exc.printStackTrace(); } }} |
|
|