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  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java实现邮件发送的具体代码: ``` import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class EmailSender { public static void main(String[] args) { // 收件人的邮箱地址 String to = "receiver@example.com"; // 发件人的邮箱地址和密码 String from = "sender@example.com"; String password = "password"; // 邮件主题和内容 String subject = "Test Email"; String text = "This is a test email."; // 邮件服务器和端口号 String host = "smtp.example.com"; int port = 587; // 创建邮件会话 Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); Session session = Session.getInstance(props); try { // 创建邮件对象 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); message.setText(text); // 发送邮件 Transport transport = session.getTransport("smtp"); transport.connect(host, port, from, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("Email sent successfully."); } catch (MessagingException e) { System.out.println("Failed to send email. Error message: " + e.getMessage()); } } } ``` 请注意,此代码需要JavaMail API和Java Activation Framework(JAF)库。您可以从以下链接下载它们: - JavaMail API:https://javaee.github.io/javamail/ - Java Activation Framework(JAF):https://javaee.github.io/javamail/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值