java发邮件

package com;

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 MailUtil {
	public static void sendMessage(String smtpHost, String from, String to,
			String subject, String messageText, String fileName)
			throws MessagingException {

		//第一步: 配置邮件会话
		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(false); // 是否在控制台显示debug信息

		//第二步:构造消息
		System.out.println("Constructing message - from=" + from + " to=" + to);

		InternetAddress fromAddress = new InternetAddress(from); // From Mail
		InternetAddress toAddress = new InternetAddress(to); // To Mail

		MimeMessage mimeMessage = new MimeMessage(mailSession);
		mimeMessage.setFrom(fromAddress);
		mimeMessage
				.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);

		mimeMessage.setSentDate(new java.util.Date());
		mimeMessage.setSubject(subject);

		// 第3步:创建一个身体的一部分来保存消息的“文字”部分
		System.out.println("Constructing 'text' body part");

		MimeBodyPart textBodyPart = new MimeBodyPart();
		textBodyPart.setContent(messageText, "text/html;charset=gb2312");

		// 第4步:创建一个身体的一部分来保存邮件的“文件”部分
		System.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");

		// 步骤5:创建一个多部分/容器并添加部分
		Multipart container = new MimeMultipart();
		container.addBodyPart(textBodyPart);
		container.addBodyPart(fileBodyPart);

		// 第6步:将多部分加入到实际消息
		mimeMessage.setContent(container);

		System.out.println("Message constructed");

		//第7步:现在发送消息
		Transport transport = mailSession.getTransport("smtp");
		transport.connect(smtpHost, "scaudengqu", "dengqu6811166111111");
		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 = "[email protected]"; // 必须与transport.connect(smtpHost,
											// "username1", "pwd1");的username1一样
		String to = "[email protected]";
		String subject = "邮件测试从mogoko"; // subject javamail自动转码
		StringBuffer theMessage = new StringBuffer();
		theMessage.append("邮件测试");//发送文件的内容

		try {
			MailUtil.sendMessage(smtpHost, from, to, subject,
					theMessage.toString(), fileName);
		} catch (javax.mail.MessagingException exc) {
			exc.printStackTrace();
		}
	}

	// +++++++++++++++++++++++++++++++++++++++++++++++
}


你可能感兴趣的:(java发邮件)