`
yuexiaowen
  • 浏览: 121997 次
  • 性别: Icon_minigender_2
  • 来自: 咸阳
社区版块
存档分类
最新评论

利用javamail包实现的邮件发送功能

    博客分类:
  • java
阅读更多

先声明下,以下代码并不是全部由我写出来的,这里还要感谢我的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("邮箱的前半部分","你邮箱的密码");

//邮箱的前半部分就是指:例如:你的邮箱是12345@sina.com,那么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协议了,所以,建议不要用这两个,以免给自己制造不必要的麻烦!!

    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics