首页 > 编程 > Java > 正文

java发送邮件示例讲解

2019-11-26 14:30:10
字体:
来源:转载
供稿:网友

本文实例讲解了java发邮件的详细过程,供大家参考,具体内容如下

1、邮件协议

发邮件的:SMTP (Simple Mail Transport  Protocal)

收邮件的协议:pop3 (Post Office Protocal 3)

IMAP 新协议 发邮件也可以收邮件。

(一步步的与服务器交互)

SMTP :

2、收发邮件的过程:

一般情况下,smtp和pop3是两个服务器(主机)。

Smtp邮件的端口为25。

POP3 端口 为110。

发邮件示例

1)、安装foxmail:

2)、发邮件时,要对用户名和密码进行base64编码

 //对用户名和密码进行base64编码 @Test public void base64(){  String name = "wj_leaf12345";  String pwd = "1qaz2wsx";  BASE64Encoder en = new BASE64Encoder();  name = en.encode(name.getBytes());  pwd = en.encode(pwd.getBytes());  System.err.println(name);  System.err.println(pwd); }

3)、通过java代码发邮件

用java发邮件,必须要导入新的包

       mail.jar 发邮件的核心包

       activation.jar 对用户和密码加密.

       在mail.jar中有三个核心类:

       Javax.mail.Session 是指与邮件服务器会话。整个项目中只要一个就可以了.

       Javax.mail.Message(接口) ―准备发送数据信息。

       MimeMessage - 可以设置类型的数据信息。

       Transport 它拥有一个方法可以发送Message。

第一步:导入两个jar包

第二步:发简单的邮件

public void sendMail() throws Exception{  //第一步:声明properties对象放信息  Properties prop = new Properties();  //设置连接哪一台服务器  prop.setProperty("mail.host","smtp.126.com");  //设置是否验证  prop.setProperty("mail.smtp.auth", "true");  //第二步:声明用户名和密码  Authenticator auth = new Authenticator() {   //此访求返回用户和密码的对象   public PasswordAuthentication getPasswordAuthentication() {    PasswordAuthentication pa =      new PasswordAuthentication("aaa", "sss");    return pa;   }  };  ////第二步:获取Session对象  Session session =    Session.getDefaultInstance(prop,auth);  //设置session的调试模式  session.setDebug(true);  //第三步:声明信息  MimeMessage mm1 =    new MimeMessage(session);    //第四步:设置发件人email  Address from = new InternetAddress("wj@126.com");  mm1.setFrom(from);  //第五步:设置收件人  mm1.setRecipient(RecipientType.TO,new InternetAddress("wj@163.com"));  mm1.setRecipient(RecipientType.CC, new InternetAddress("554@qq.com"));  mm1.setRecipient(RecipientType.BCC, new InternetAddress("wj@ss.cn"));  //第六步:设置主题  mm1.setSubject("这是用Java发的邮件3");  mm1.setContent("你好,这是用java发的邮件,3333再试一下", "text/plain;charset=UTF-8");  //第七步:  Transport.send(mm1); } 

第三步:v发带有超连接的邮件

mm1.setSubject("这是用Java发的邮件sfasdf3");  mm1.setContent("你好,这是用java发的邮件,<a href='http://www.baidu.com'>百度</a>", "text/html;charset=UTF-8" );  //第七步:  Transport.send(mm1);

第四步:符件的邮件

public void sendFile() throws Exception{  Properties p = new Properties();  p.setProperty("mail.host","smtp.163.com");  p.setProperty("mail.smtp.auth","true");  Session s = Session.getDefaultInstance(p,new Authenticator() {   @Override   public PasswordAuthentication getPasswordAuthentication() {    return new PasswordAuthentication("ww", "123");   }  });  s.setDebug(true);   //声明MimeMessage  MimeMessage msg = new MimeMessage(s);  msg.setFrom(new InternetAddress("ww@163.com"));  msg.setRecipient(RecipientType.TO, new InternetAddress("ww@126.com"));  msg.setSubject("图片的");    //第一步:声明多处理的Part  MimeMultipart mm = new MimeMultipart();  //第二步:声明  MimeBodyPart body1 = new MimeBodyPart();  //第三步:设置符件  DataSource ds = new FileDataSource(new File("./img/a.jpg"));  DataHandler dh = new DataHandler(ds);  body1.setDataHandler(dh);  //必须要设置名称  body1.setFileName(MimeUtility.encodeText("美女.jpg"));  MimeBodyPart body2 = new MimeBodyPart();  //第三步:设置符件  DataSource ds2 = new FileDataSource(new File("./img/b.jpg"));  DataHandler dh2 = new DataHandler(ds2);  body2.setDataHandler(dh2);  //必须要设置名称  body2.setFileName(MimeUtility.encodeText("美女2.jpg"));  MimeBodyPart body3 = new MimeBodyPart();  //第三步:设置符件  DataSource ds3 = new FileDataSource(new File("./img/m.mp3"));  DataHandler dh3 = new DataHandler(ds3);  body3.setDataHandler(dh3);  //必须要设置名称  body3.setFileName(MimeUtility.encodeText("世纪末.mp3"));  //将body1添加到mm  mm.addBodyPart(body1);  mm.addBodyPart(body2);  mm.addBodyPart(body3);  msg.setContent(mm);    //发送  Transport.send(msg); }

以上就是本文的全部内容,希望对大家的学习有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表