先声明下,以下代码并不是全部由我写出来的,这里还要感谢我的IT老师郑老师(虽然他可能不会知道我会在这里提到他,不过我还是要感谢他!)主体代码都是由郑老师提供,只有部分我所需要的功能是我稍加修改加上去的!整个实例很简单,希望对各位IT爱好者可以起到抛砖引玉的作用。
package maildemo;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendMailDemo {
public SendMailDemo() {
}
public void sendMail(String from,String to,String title,String content)
{
try
{
System.out.println("正在发送邮件,请稍侯...");
Properties p=new Properties();
p.put("mail.transport.protocol","smtp");
p.put("mail.smtp.host","smtp.163.com");//这里的smtp.163.com中间的163要根据你用的邮箱改变!
如果你用的是sina的话,这里就要写成smtp.sina.com,以此类推。不多做解释了!!
p.put("mail.smtp.auth", "true");
p.put("mail.stmp.port","25");
MyAuthenticator auth=new MyAuthenticator("邮箱的前半部分","你邮箱的密码");
//邮箱的前半部分就是指:例如:你的邮箱是[email protected],那么12345这就是你邮箱的前半部分。。
至于密码。。。不用我多说了吧。
恩我想这样说大家应该都很清楚了。
Multipart multipart=new MimeMultipart();
BodyPart part1=new MimeBodyPart(); //第一部分,邮件正文
part1.setText(content);
Session mailSession=Session.getInstance(p,auth);
multipart.addBodyPart(part1);
Message mailMessage=new MimeMessage(mailSession);
mailMessage.setFrom(new InternetAddress(from));
mailMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
mailMessage.setSubject(title);
//mailMessage.setText(content);如果按照这句发的话,html标记在接受过程中会被编译,接收者受到的就不是超链接了
mailMessage.setContent(content,"text/html;charset=utf-8");
//想收到超链接形式就要这样设置。。后面的String一定要这样写哦,有好处的,防止乱码!!
Transport.send(mailMessage);
System.out.println("邮件发送完毕!");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public static void main(String[] args) {
String from="发件人的";
String to="收件人的Email地址";
String title="first";
String content="<a href='http://news.163.com/09/0317/01/54IQT3GM00011229_2.html'>11111</a>";
//这部分就是一段html代码了,根据需要只写body中的部分即可。
SendMailDemo obj=new SendMailDemo();
obj.sendMail(from,to,title,content);
}
}
代码就这些就够了,还有最最最关键的就是java包了。。这里所需要的三个发送Email的java包是在MyEclipes中不存在的需要你下载导入才可以使用,简单介绍下这三个java包。
activation.jar mail-1.4.jar pop3.jar
就这三个了,有兴趣自己去下就好。
还有要说明一点,如果你测试的时候用的是163或者126的2006年之后注册的邮箱发送Email可能会有问题。因为他们现在已经不使用smtp协议了,所以,建议不要用这两个,以免给自己制造不必要的麻烦!!