首页 > java > 使用javamail发送邮件的简单例子

使用javamail发送邮件的简单例子

2010年5月29日 wasw100 发表评论 阅读评论

发送一个邮件需要做些什么?我们可以列一下
a.登陆邮箱(1.用户名,2.密码,3.发邮件需要它的smtp)
b.写邮件时需要 4.收件人邮箱地址,5.邮件标题,6.邮件内容

有了上面6个变量,我们就可以用javamail中的mail.jar发邮件了。

用下面这个简单的例子就可以发邮件了

package com.wasw100.mail;

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

/**
 * 邮件发送类
 * @author wasw100
 */
public class MailSend {

    private String host = "smtp.gmail.com";
    private String userName = "你邮箱的登录名";
    private String password = "你邮箱的登陆密码";

    private String mail_to = "wasw100@gmail.com";
    private String mail_subject = "邮件标题";
    private String mail_body = "邮件内容";

    public void send(){
    	Properties props = new Properties(); // 获取系统环境
        Authenticator auth = new MailAuthenticator(userName, password); // 进行邮件服务器用户认证
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props, auth);
        // 设置session,和邮件服务器进行通讯。
        MimeMessage message = new MimeMessage(session);
        try {
			message.setSubject(mail_subject);
			message.setText(mail_body); // 设置邮件正文
	        Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址
	        message.addRecipient(Message.RecipientType.TO, toAddress);
	        Transport.send(message); // 发送邮件
	        System.out.println("send ok!");
		} catch (MessagingException e) {
			e.printStackTrace();
		}
    }
    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
		new MailSend().send();
	}
}

/**
 * 用于进行邮箱的验证
 * @author wasw100
 */
class MailAuthenticator extends Authenticator {
	private String userName;
	private String password;

	public MailAuthenticator(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}

	@Override
	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, password);
	}
}

一些复杂的邮件根据上面就可以简单的改出来,例如群发把Message的addRecipients(Message.RecipientType type, Address[] addresses)代替为addRecipient(Message.RecipientType type, Address address) 就可以了。

参考:JavaMail发送邮件的一个例子(全)

–EOF–

分类: java 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.