Java实现邮箱发送

[java]  view plain  copy
  1. package com.forenms.ycczj.email;  
  2.   
  3. import javax.mail.Authenticator;  
  4. import javax.mail.PasswordAuthentication;  
  5.   
  6. /** 
  7.  * 进行邮箱认证 
  8.  *  
  9.  * 
  10.  */  
  11. public class EmailAutherticator extends Authenticator{  
  12.       
  13.     private String userName;  
  14.       
  15.     private String passWord;  
  16.       
  17.     public EmailAutherticator(String userName, String passWord) {  
  18.         super();  
  19.         this.setUserName(userName);  
  20.         this.setPassWord(passWord);  
  21.   
  22.     }  
  23.   
  24.     public PasswordAuthentication getPasswordAuthentication() {  
  25.         return new PasswordAuthentication(userName, passWord);  
  26.     }  
  27.   
  28.     public String getUserName() {  
  29.         return userName;  
  30.     }  
  31.   
  32.     public void setUserName(String userName) {  
  33.         this.userName = userName;  
  34.     }  
  35.   
  36.     public String getPassWord() {  
  37.         return passWord;  
  38.     }  
  39.   
  40.     public void setPassWord(String passWord) {  
  41.         this.passWord = passWord;  
  42.     }  
  43.   
  44. }  
[java]  view plain  copy
  1. package com.forenms.ycczj.email;  
  2.   
  3. import java.util.Date;  
  4. import java.util.Properties;  
  5. import java.util.ResourceBundle;  
  6.   
  7. import javax.activation.DataHandler;  
  8. import javax.activation.FileDataSource;  
  9. import javax.mail.Authenticator;  
  10. import javax.mail.Multipart;  
  11. import javax.mail.Session;  
  12. import javax.mail.Transport;  
  13. import javax.mail.internet.InternetAddress;  
  14. import javax.mail.internet.MimeBodyPart;  
  15. import javax.mail.internet.MimeMessage;  
  16. import javax.mail.internet.MimeMultipart;  
  17. import javax.mail.internet.MimeUtility;  
  18.   
  19.   
  20. public class SendMail {  
  21.     private static ResourceBundle bunder=ResourceBundle.getBundle("email");  
  22.     public static void main(String args[])throws Exception{  
  23.         String smsMob[]=new String[]{"xxxxxx@qq.com"};  
  24.         System.out.println(SendMail.sendMail("title 邮件的标题", smsMob, "content 邮件的内容"));  
  25.           
  26.     }  
  27.       
  28.     /** 
  29.      * 发送邮件 
  30.      * @param subject  标题 
  31.      * @param to  接收方 
  32.      * @param text  内容 
  33.      * @param mimeType  类型("text/html;charset=gb2312") 
  34.      * @throws Exception 
  35.      */  
  36.     public static boolean sendMail(String subject, String[] to,String text) {  
  37.         boolean result=false;  
  38.         String smtp = bunder.getString("mail.smtp.host");   
  39.         String serverName = bunder.getString("mail.qq");  
  40.         String serverPaswd = bunder.getString("mail.from.password");  
  41.         String userMail=bunder.getString("mail.from");  
  42.   
  43.         //设置连接邮件服务器属性  
  44.         Properties properties = System.getProperties();   
  45.         properties.put("mail.smtp.host", smtp);   
  46.         properties.put("mail.smtp.auth""true");  
  47.   
  48.         //进行邮件服务器认证  
  49.         EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);  
  50.         //获取连接邮件服务器会话  
  51.         Session session = Session.getInstance(properties,(Authenticator)emailAuther);  
  52.         //设置邮件正文  
  53.         MimeMessage mimeMessage = new MimeMessage(session);  
  54.         Multipart multipart = new MimeMultipart();    
  55.         try {  
  56.             //设置发送邮件人地址  
  57.             InternetAddress sentFrom = new InternetAddress(userMail);  
  58.             mimeMessage.setFrom(sentFrom);        
  59.             //设置接收邮件人地址  
  60.             InternetAddress[] sendTo = new InternetAddress[to.length];  
  61.             for (int i = 0; i < to.length; i++) {  
  62.                 sendTo[i] = new InternetAddress(to[i]);  
  63.             }  
  64.             //mimeMessage.setRecipients(MimeMessage.RecipientType.TO,   sendTo);  
  65.               
  66.             mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);                  
  67.             //设置邮件标题  
  68.             mimeMessage.setSubject(subject, "UTF-8");         
  69.             //加入邮件正文信息  
  70.             MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();       
  71.             //加入html  
  72.             mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");        
  73.             multipart.addBodyPart(mimeBodyPartHtml);      
  74.             //加入邮件正文  
  75.             mimeMessage.setContent(multipart);  
  76.             //加入发送时间  
  77.             mimeMessage.setSentDate(new Date());          
  78.             //保存信息  
  79.             mimeMessage.saveChanges();  
  80.             //发送邮件  
  81.             Transport.send(mimeMessage);  
  82.             result=true;  
  83.         } catch (Exception e) {           
  84.             //e.printStackTrace();  
  85.             return false;  
  86.         }  
  87.         return result;  
  88.     }  
  89.   
  90.     /** 
  91.      * 发送邮件(加入附件) 
  92.      * @param subject  标题 
  93.      * @param to  接收方 
  94.      * @param text  内容 
  95.      * @param fileName  发送文件 
  96.      * @param mimeType  类型("text/html;charset=gb2312") 
  97.      * @throws Exception 
  98.      */  
  99.     public static void sendMailToFile(String subject, String[] to,String text, String fileName) throws Exception {  
  100.   
  101.         String smtp = "smtp.163.com";   
  102.         String serverName = "xxxxxx";  
  103.         String serverPaswd = "xxxxxxxxx";  
  104.         String userMail="xxxxxxx@163.com";  
  105.   
  106.         //设置连接邮件服务器属性  
  107.         Properties properties = System.getProperties();   
  108.         properties.put("mail.smtp.host", smtp);   
  109.         properties.put("mail.smtp.auth""true");  
  110.   
  111.         //进行邮件服务器认证  
  112.         EmailAutherticator emailAuther = new EmailAutherticator(serverName, serverPaswd);  
  113.         //获取连接邮件服务器会话  
  114.         Session session = Session.getInstance(properties,(Authenticator)emailAuther);  
  115.         //设置邮件正文  
  116.         MimeMessage mimeMessage = new MimeMessage(session);  
  117.         Multipart multipart = new MimeMultipart();        
  118.         //设置发送邮件人地址  
  119.         InternetAddress sentFrom = new InternetAddress(userMail);  
  120.         mimeMessage.setFrom(sentFrom);        
  121.         //设置接收邮件人地址  
  122.         InternetAddress[] sendTo = new InternetAddress[to.length];  
  123.         for (int i = 0; i < to.length; i++) {  
  124.             sendTo[i] = new InternetAddress(to[i]);  
  125.         }  
  126.         //mimeMessage.setRecipients(MimeMessage.RecipientType.TO,   sendTo);  
  127.           
  128.         mimeMessage.setRecipients(MimeMessage.RecipientType.BCC,sendTo);          
  129.           
  130.           
  131.         //设置邮件标题  
  132.         mimeMessage.setSubject(subject, "UTF-8");         
  133.         //加入邮件正文信息  
  134.         MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();       
  135.         //加入html  
  136.         mimeBodyPartHtml.setContent(text, "text/html;charset=gb2312");        
  137.         multipart.addBodyPart(mimeBodyPartHtml);  
  138.         //加入附件    
  139.         MimeBodyPart mimeBodyPartFile = new MimeBodyPart();  
  140.         //附件文件路径  
  141.         String filename = fileName.split(",")[0];  
  142.         //附件文件名称  
  143.         String displayname = fileName.split(",")[1];  
  144.         //获取文件流  
  145.         FileDataSource fds = new FileDataSource(filename);  
  146.         mimeBodyPartFile.setDataHandler(new DataHandler(fds));  
  147.         mimeBodyPartFile.setFileName(MimeUtility.encodeText(displayname));  
  148.         multipart.addBodyPart(mimeBodyPartFile);          
  149.         //加入邮件正文  
  150.         mimeMessage.setContent(multipart);  
  151.         //加入发送时间  
  152.         mimeMessage.setSentDate(new Date());          
  153.         //保存信息  
  154.         mimeMessage.saveChanges();  
  155.   
  156.         //发送邮件  
  157.         Transport.send(mimeMessage);  
  158.     }  
  159.       
  160. }  

email.properties

[plain]  view plain  copy
  1. mail.smtp.host=smtp.qq.com  
  2. mail.smtp.auth=true  
  3. mail.from=xxxxxx@qq.com  
  4. mail.qq=xxxxxx  
  5. mail.from.password=******  
  6. mail.smtp.timeout=25000  
  7. mail.smtp.starttls.enable=true  
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值