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();
??????? }
??? }
}
本Blog純屬個人學習、工作需要,記錄相關資料。請不要發表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn
posted on 2006-09-28 15:51
ZhipSoft 閱讀(273)
評論(0) 編輯 收藏 所屬分類:
Java