使用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);
}