请通过浏览器功能收藏网页

java代码操作网易邮箱代发邮件功能的相关设置及实现 实用小功能

发布时间:2018-09-03 10:33:52  作者:本站编辑  来源:本站原创  浏览次数:
www.javainfo.com.cn 上干货 欢迎收藏


以163邮箱为代发邮件的测试对象,

1 注册邮箱 登录后  


  协议说明: 

SMTP

      SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 

  SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 

  增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。  

      通过网易邮箱的解读,我们可以发现 其添加了SMTP认证功能, 我们想要登录SMTP服务器 必须拥有网易提供的 授权码。


2 点击设置操作界面如下, 内容说明了《授权码》的作用,我们想代发邮件,就必须申请smtp服务器的授权码

 image.png

3 发送邮件函数

      main{

                 String addresser = "sender@163.com";

 String host= "smtp.163.com";

 String mailName = "sender@163.com";

 String mailAuthPass="授权码";  

 String toAddresses = "target_mail@qq.com";

      }

    发送功能:

   

/**

* 邮件发送JAVAX.MAIL核心发送方法

* @param host//smtp服务地址

* @param addresser//邮件发送者地址

* @param mailName//邮箱地址

* @param mailAuthPass  //smtp邮箱验证密码   及我们上面申请的 授权码

* @param toAddresses//邮箱被发送地址

* @param subject//邮件标题

* @param context//邮件内容

* @return

*/

public boolean EmailSendHtmlType(String host,String addresser,String mailName, String mailAuthPass, String toAddresses,String subject, String context){

 boolean result=false;  

 Properties p=new Properties();

 p.put("mail.smtp.host", host);

 p.put("mail.smtp.auth","true");

 p.put("mail.transport.protocol", "smtp");

 EmailAuthenticator ea=new EmailAuthenticator(mailName,mailAuthPass);

 Session session=Session.getInstance(p,ea);

 MimeMessage message=new MimeMessage(session);  

 try {

  Address[] toAddress = InternetAddress.parse(toAddresses);  

  message.setFrom(new InternetAddress(addresser));

  message.setRecipients(Message.RecipientType.TO, toAddress);

  message.setSubject(subject);

  message.setSentDate(new Date());

  Multipart mm=new MimeMultipart(); 

  BodyPart mdp=new MimeBodyPart(); 

  mdp.setContent(context,"text/plain;charset=UTF-8");//设置邮件内容 

  mm.addBodyPart(mdp);

  message.setContent(mm); 

  Transport transport = session.getTransport("smtp");  

  log.error("emailsendkerneltagtransport ", "transport="+transport); 

  transport.connect(host, mailName, mailPass);

  transport.sendMessage(message, message.getAllRecipients());

  transport.close();

  result=true;

 } catch (Exception e) {

log.error("emailsendkerneltag1", e.getMessage()); 

log.error("emailsendkerneltag2", e);  

   result = false;

   e.printStackTrace();

 }

 return result;  

}

  测试结果 显示 , 新申请的163邮箱 成功的被 调用了,将邮件发送到了 目标邮箱。




如有疑问 请留言 欢迎提供建议

评论已有 0