java写的邮件发送的例子
我用的是jdk1.6,是在eclipse3.1上编写的代码,所以javamail需要的jar包我都不需要导入,jdk自带了接口的jar和eclipse它已经自带实现类-mail.jar。
package com.cs.mail;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.cs.utils.DateUtil;
public class Demo {
public static void main(String[] args) throws Exception{
Properties props = new Properties();
props.put("mail.smtp.auth","true");//mail.smtp.auth属性设置为true,表示要做验证
props.put("mail.transport.protocal","smtp");
props.put("mail.smtp.host","smtp.126.com");
Session session = Session.getInstance(props,
/*创建一个匿名内部类,并且覆盖了父类的方法,这个模式叫做策略模式*/
new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("发件人的用户名","密码");
}
}
);
session.setDebug(true);//设置debug为true时,表示要在控制台打印出发送邮件时的相关信息
Message msg = new MimeMessage(session);
msg.setSubject("邮箱测试");//设置邮件标题
//msg.setText("邮件测试的内容正文!");//如果是纯文本,可以使用setText()方法,否则要用setContent
String context = "<span style='color:red'>中文字符呵呵呵呵呵,你好,晚上好!</span><br>现在时间是:"
+DateUtil.getNowDateString();
msg.setContent(context,"text/html;charset=gbk");
msg.setFrom(new InternetAddress("df4@126.com"));
msg.addRecipients(RecipientType.TO,InternetAddress.parse("l3d4@126.com,"));//发送给谁,自己定义
msg.addRecipients(RecipientType.CC,
InternetAddress.parse("l4@126.com,33333334@qq.com,333333@qq.com"));//抄送
//这个静态方法内部做了连接,发送,关闭动作,如果使用实例变量的sendMessage(....)方法,则要自己去连接,发送,关闭.
Transport.send(msg);
}
}