java.mail实现发送邮件

  

本文实例为大家分享了java.mail实现发送邮件的具体代码,供大家参考,具体内容如下

  

<强>前提条件:

  

需要对邮箱做出设置,开启:
  POP3/IMAP/SMTP/交流/CardDAV CalDAV等服务
  一方面是接收这些代理服务器发送的邮件
  另一方面就是让邮箱接受这些邮件协议的代理
  在登录的时候,就是用户名和授权码,进行登录
  获取授权码的过程:直接百度搜索就有结果,这里不再赘述

  

<强>演示

  

这里需要引入javax。邮件jar包

  

 java.mail实现发送邮件

        包装测试;///* *//*//* @author jingxl0327//* @Description邮件发送测试//*/公开课sendMailTest {   公共静态void main (String [] args){抛出异常//配置信息   箴=new属性();   pro.put (“mail.smtp。主机”、“smtp.163.com”);   pro.put (“mail.smtp。身份验证”、“真正的”);//SSL加密   MailSSLSocketFactory科幻=零;   科幻小说=new MailSSLSocketFactory ();//设置信任所有的主机   sf.setTrustAllHosts(真正的);   pro.put (“mail.smtp.ssl。启用”、“真正的”);   pro.put (“mail.smtp.ssl。socketFactory”,科幻小说);//根据邮件的会话属性构造一个发送邮件的会话,这里需要注意的是用户名那里不能加后缀,否则便不是用户名了//还需要注意的是,这里的密码不是正常使用邮箱的登陆密码,而是客户端生成的另一个专门的授权码   MailAuthenticator身份=new MailAuthenticator (“jingxl0327”,   “jing0327”);   会话会话=会话。getInstance(职业、身份验证);//根据会话构建邮件信息   消息消息=new MimeMessage(会话);//创建邮件发送者地址   地址=new InternetAddress (“jingxl0327@163.com”);//设置邮件消息的发送者   message.setFrom(从);//验证收件人邮箱地址   List,toAddressList=new ArrayList<的在();   toAddressList.add (“1157496573 @qq.com”);   StringBuffer缓冲=new StringBuffer ();   如果(! toAddressList.isEmpty ()) {   字符串正则表达式=" ^ ([a-z0-9A-Z] + [- | \ \] & # 63;) + (a-z0-9A-Z) @ ((a-z0-9A-Z) + (- [a-z0-9A-Z] +) & # 63; \ \) + [a-zA-Z] {2,} $”;   p=Pattern.compile模式(正则表达式);   for (int i=0;我& lt;toAddressList.size ();我+ +){   匹配器匹配=p.matcher (toAddressList.get(我));   如果(match.matches ()) {   buffer.append (toAddressList.get (i));   如果我& lt;toAddressList.size () - 1) {   buffer.append (", ");   }   }   }   }   字符串的toAddress=buffer.toString ();   如果(! toAddress.isEmpty ()) {//创建邮件的接收者地址   地址[]=InternetAddress.parse(解决);//设置邮件接收人地址   message.setRecipients (Message.RecipientType。,);//邮件主题   message.setSubject(“这个是主题”);//邮件容器   MimeMultipart MimeMultipart=new MimeMultipart ();//设置的HTML   BodyPart BodyPart=new MimeBodyPart ();//邮件内容   字符串超文本="这个是内容”;   bodyPart。setContent(超文本,“text/html; charset=utf - 8”);   mimeMultiPart.addBodyPart (bodyPart);//添加附件   ListfileAddressList=new ArrayList ();   fileAddressList   阀门(“C: \ \ \ \ tuzongxun123 \ \用户桌面\ \新建微软Office词文档docx”);   如果(fileAddressList !=null) {   BodyPart attchPart=零;   for (int i=0;我& lt;fileAddressList.size ();我+ +){   如果(! fileAddressList.get(我).isEmpty ()) {   attchPart=new MimeBodyPart ();//附件数据源   数据源源=new FileDataSource (   fileAddressList.get (i));//将附件数据源添加到邮件体   attchPart。setDataHandler(新DataHandler(源));//设置附件名称为原文件名   attchPart.setFileName (MimeUtility.encodeText(源   . getname ()));   mimeMultiPart.addBodyPart (attchPart);   }   }   }   message.setContent (mimeMultiPart);   消息。setSentDate(新日期());//保存邮件   message.saveChanges ();//发送邮件   Transport.send(消息);   }   }   }      类MailAuthenticator扩展身份{/* *   *用户名   */私人字符串的用户名;/* *   *密码   */私人密码字符串;/* *   *创建一个新的实例MailAuthenticator。   *   * @param用户名   * @param密码   */公共MailAuthenticator(用户名的字符串,字符串密码){   这一点。用户名=用户名;   这一点。密码=密码;   }      公共字符串getPassword () {   返回密码;   }      @Override   保护PasswordAuthentication getPasswordAuthentication () {   返回新PasswordAuthentication(用户名、密码);   }      公共字符串getUsername () {   返回用户名;   }      公共空间向setPassword(字符串密码){   这一点。密码=密码;   }      公共空间setUsername(字符串的用户名){   这一点。用户名=用户名;   }      }

java.mail实现发送邮件