Java Mail 学习笔记2——发送电子邮件

Java Mail API 是Java EE 标准的一部分,提供了处理电子邮件的类库。它的目的是使用相同的API来同不同的服务提供者,诸如SMTP,IMAP打交道。

下面看下发送电子邮件的步骤:

1.设置mail.host属性,指向你的邮件服务器

2.启动一个邮件会话:Session.getInstance()

3.创建一个新的Message对象,如MimeMessage

4.设置消息的From,即消息从哪里来

5.设置消息的To:即消息到哪里去

6.设置消息的Subject

7.设置消息的内容

8.通过Transport.send()发送消息

对于第二个步骤,它启动了一个邮件会话。例如:

Session session=Session.getInstance(props,null)

该会话表示应用程序即将和一个邮件服务器进行通信。它第二个参数是一个javax.mail.Authenticator对象。大多数时候,使用本地邮件服务器发送EMail不需要提供之,如果没有使用本地邮件服务器,那么我们需要提供这个参数。


然后就是创建MimeMessage对象:

Message message=new MimeMessage(session);

现在有了message对象,我们要设置它的一些属性,From地址,和To地址,它们都是javax.mail.internet.InternetAddress对象

Address from=new InternetAddress("EmailAddrees", "Jobs");

Address to=new InternetAddress("EmailAddrees");


本节完成一个简单示例,约定如下:

1.使用QQ邮箱作为邮件服务器

2.JDK版本1.6,这样的话,我们的代码只需要一个mail.jar


然后就是代码示例:


package com.mail;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class MimeMessageTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Properties props=new Properties();
		props.setProperty("mail.smtp.auth", "true");
		props.setProperty("mail.transport.protocol", "smtp");
		props.setProperty("mail.host", "smtp.qq.com");
		
		Session session=Session.getInstance(props, new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("[email protected]","你的密码");
			}
		});
		Message message=new MimeMessage(session);
		
		try {
			Address from=new InternetAddress("[email protected]", "Yanan");
			Address to=new InternetAddress("[email protected]");
			
			message.setContent("Hi!!!!!", "text/plain");
			message.setFrom(from);
			message.setRecipient(Message.RecipientType.TO, to);
			Transport.send(message);
			System.out.println("send successed!");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

}






你可能感兴趣的:(Java Mail 学习笔记2——发送电子邮件)