需要使用到外部引用包javamail可以到这个网址上下载,我使用的是1.4.4
它会给出很多jar包,但是只需要引用mail.jar就可以了,这个貌似是集合了所有的包,其他的几个是分开的,你使用到其中哪一个包中得功能了,可以单独引用其他的。
由于这里是自动发送邮件,所以只写发送的部分,自动接收和读出信息可放到私下里交流,如果谁有兴趣,可以跟我联系。
其实javamail已经集成了所有的功能,我们要用到的就只是往里边输入信息就可以了,我下边用一个包装好的方法介绍一下,另外说一下,这个方法是可以重用的,直接复制到程序里就完全OK的。
public boolean sendMail(String mf,String mt,Stringms,String mc,String m_server,String m_user,String m_pswd)
{
//mf:发送方;mt:接收方;ms:邮件标题,mc:邮件内容,m_server:MAIL服务器,m_user:用户名,m_pswd,密码;
try
{
//也可以使用Properties props=System. getProperties();
Propertiesprops=new Properties();
//存储发送邮件服务器信息
props.put("mail.smtp.host",m_server);
//表示通过验证
props.put("mail.smtp.auth","true");
//新建一个邮件会话
SessionnewSession=Session.getInstance(props);
//新建一个消息对象
MimeMessagemessage=new MimeMessage(newSession);
//下边是设置邮件基本信息
//设置发件人
InternetAddressfrom=new InternetAddress(mf);
message.setFrom(from);
//设置收件人
InternetAddresssto=new InternetAddress(mt);
//设置他们的接收类型为To
message.setRecipient(Message.RecipientType.TO,sto);
//设置发送副本
message.setRecipient(Message.RecipientType.CC,sto);
//设置密件发送副本
message.setRecipient(Message.RecipientType.BCC,sto);
//设置邮件的标题
message.setSubject(ms);
//设置邮件发送的时间
message.setSentDate(newDate());
//新建一个存放信件内容的BodyPart
BodyPartmdp=new MimeBodyPart();
//给BodyPart对象设置内容和格式/编码方式防止邮件出现乱码
mdp.setContent(mc,"text/html;charset=gb2312");
//新建一个Multipart存放BodyPart,可以存放多个
Multipartmm = new MimeMultipart();
//把BodyPart加入到Multipart中,可以添加多个
mm.addBodyPart(mdp);
//把Multipart作为消息的内容
message.setContent(mm);
//保存邮件信息
message.saveChanges();
//以smtp的方式登录邮箱
Transporttransport=newSession.getTransport("smtp");
//设置发送邮件的网管,发信的账户和密码
transport.connect(m_server,m_user,m_pswd);
//发送信息
transport.sendMessage(message,message.getAllRecipients());
transport.close();
returntrue;
}
catch(MessagingExceptione)
{
e.printStackTrace();
System.out.println(e.toString());
returnfalse;
}
}
以上是一个封装好的方法,如果使用的时候可以直接拷贝转移,然后在主类引用这个方法即可,注意添加必要的参数,我可以加上一个例子
sendMail( "xxxx@xmu.edu.cn",”****”,"hello","I'mhushichang,this is a automatic message! ^_^","smtp.xmu.edu.cn","xxxx","xxxx");
其中xxxx可以修改为自己发信的账户,以及用户名和密码,****是要接受的账户