使用Javamail发送邮件例子和相关的解释

下面例子演示怎样用javamail来发送邮件,在测试之前,我们要下载javamail的类包,并添加入你的工程中,如果你的IDE自带javamail的类包,那就很简单,直接import 就行,mark使用的是MyEclipse 7.5,自带,所以可以直接测试下面代码了。

 

几个javamail类的作用
javax.mail.Properties类
我们使用Properties来创建一个session对象。里面保存里对Session的一些设置,如协议,SMTP地址,是否验证的设置信息

javax.mail.Session类
代表一个邮件session. 有session才有通信。

javax.mail.InternetAddress类
Address确定信件地址。

javax.mail.MimeMessage类
Message对象将存储发送的电子邮件信息,如主题,内容等等

javax.mail.Transport类
 Transport传输邮件类,采用send方法是发送邮件。

 

package ajava.sample.jee;

import java.util.Properties;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

//ajava.org JavaMail发送例子
public class AjavaEmailSenderDemo {
    public static void main(String[] args) {
         String from = "";//发信邮箱
         String to = "";//收信邮箱
         String subject = "Hi There...";//邮件主题
         String text = "How are you? ";//邮件内容
 
         Properties properties = new Properties();//创建Properties对象
         properties.setProperty("mail.transport.protocol", "smtp");//设置传输协议
         properties.put("mail.smtp.host", "smtp.sina.com");//设置发信邮箱的smtp地址
         properties.setProperty("mail.smtp.auth", "true"); //验证
         Authenticator auth = new AjavaAuthenticator("ajavamark","ajavamark"); //使用验证,创建一个Authenticator
         Session session = Session.getDefaultInstance(properties, auth);//根据Properties,Authenticator创建Session
         try {
             Message message = new MimeMessage(session);//Message存储发送的电子邮件信息
             message.setFrom(new InternetAddress(from));
             message.setRecipient(Message.RecipientType.TO,
                     new InternetAddress(to));//设置收信邮箱
             message.setSubject(subject);//设置主题
             message.setText(text);//设置内容
             Transport.send(message);//发送
         } catch (MessagingException e) {
             e.printStackTrace();
         }
     }
}

 

//创建传入身份验证信息的 Authenticator类 
class AjavaAuthenticator extends Authenticator {
 private String user;     
 private String pwd;      
 public AjavaAuthenticator(String user, String pwd) {
  this.user = user;         
  this.pwd = pwd;     
 }      
 @Override    
 protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication(user, pwd);     
 } 
 
posted @ 2012-05-09 00:16  狂奔的蜗牛cn  阅读(148)  评论(0编辑  收藏  举报