zoukankan      html  css  js  c++  java
  • java发送邮件

    1.安装所需的email的jar包

    2.发送一封简单的Email

    package com.mylight;
    
    import java.util.Properties;
    import java.util.UUID;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    public class TestMail {
        public static void main(String[] args) {
    
            // 收件人电子邮箱
            String to = "****@163.com";
    
            // 发件人电子邮箱
            String from = "****@qq.com";
    
            senEmail(to, from);
        }
    
        private static void senEmail(String to, String from) {
            // 指定发送邮件的主机为 smtp.qq.com
              final String host = "smtp.163.com";  //QQ 邮件服务器
         
              // 获取系统属性
              final Properties properties = System.getProperties();
         
              // 设置邮件服务器
              properties.setProperty("mail.smtp.host", host);
         
              properties.put("mail.smtp.auth", "true");
              // 获取默认session对象
              final Session session = Session.getDefaultInstance(properties,new Authenticator(){
                public PasswordAuthentication getPasswordAuthentication()
                {
                 return new PasswordAuthentication(from, "****"); //发件人邮件用户名、密码(授权密码)  与登录密码不同
                }
               });
         
              try{
                 // 创建默认的 MimeMessage 对象
                 final MimeMessage message = new MimeMessage(session);
         
                 // Set From: 头部头字段
                 message.setFrom(new InternetAddress(from));
         
                 // Set To: 头部头字段
                 message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
         
                 // Set Subject: 头部头字段
                 message.setSubject("验证码");
         
                 // 设置消息体
                 message.setText("你的验证码为:" + String.valueOf(UUID.randomUUID()).substring(0, 6).toUpperCase());
         
                 // 发送消息
                 Transport.send(message);
                 System.out.println("Sent message successfully....from.com");
              }catch (final MessagingException mex) {
                 mex.printStackTrace();
              }
        }
    }

    3.发送一段HTML的email

    package com.mylight;
    
    import java.util.Properties;
    
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    public class HtmlTestEmail {
        public static void main(String[] args) {
                
             // 收件人电子邮箱
              String to = "****@163.com";
         
              // 发件人电子邮箱
              String from = "****@163.com";
         
              // 指定发送邮件的主机为 localhost
              String host = "smtp.163.com";
         
              // 获取系统属性
              Properties properties = System.getProperties();
         
              // 设置邮件服务器
              properties.setProperty("mail.smtp.host", host);
              //设置验证
              properties.put("mail.smtp.auth", "true");
              // 获取默认的 Session 对象。
              Session session = Session.getDefaultInstance(properties,new Authenticator() {
                  
                  public PasswordAuthentication getPasswordAuthentication()
                    {
                     return new PasswordAuthentication(from, "***"); //发件人邮件用户名、密码
                    }
            });
         
              try{
                 // 创建默认的 MimeMessage 对象。
                 MimeMessage message = new MimeMessage(session);
         
                 // Set From: 头部头字段
                 message.setFrom(new InternetAddress(from));
         
                 // Set To: 头部头字段
                 message.addRecipient(Message.RecipientType.TO,
                                          new InternetAddress(to));
         
                 // Set Subject: 头字段
                 message.setSubject("This is the Subject Line!");
         
                 // 发送 HTML 消息, 可以插入html标签
                 message.setContent("<h1>This is actual message</h1>",
                                    "text/html" );
         
                 // 发送消息
                 Transport.send(message);
                 System.out.println("Sent message successfully....");
              }catch (MessagingException mex) {
                 mex.printStackTrace();
              }
        }
    }

    4.发送带有附件的Email

    package com.mylight;
    
    import java.io.File;
    import java.util.Properties;
    
    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.Authenticator;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    
    public class FjTestEmail {
        public static void main(String[] args) {
            
            // 收件人电子邮箱
              String to = "****@163.com";
         
              // 发件人电子邮箱
              String from = "****@163.com";
         
              // 指定发送邮件的主机为 localhost
              String host = "smtp.163.com";
         
              // 获取系统属性
              Properties properties = System.getProperties();
         
              // 设置邮件服务器
              properties.setProperty("mail.smtp.host", host);
              //设置验证
              properties.put("mail.smtp.auth", "true");
              // 获取默认的 Session 对象。
              Session session = Session.getDefaultInstance(properties,new Authenticator() {
                  
                  public PasswordAuthentication  getPasswordAuthentication(){
                      
                    return new PasswordAuthentication(from, "lcy1992111");
                  }
                  
            });
         
              try{
                 // 创建默认的 MimeMessage 对象。
                 MimeMessage message = new MimeMessage(session);
         
                 // Set From: 头部头字段
                 message.setFrom(new InternetAddress(from));
         
                 // Set To: 头部头字段
                 message.addRecipient(Message.RecipientType.TO,
                                          new InternetAddress(to));
         
                 // Set Subject: 头字段
                 message.setSubject("This is the Subject Line!");
         
                 // 创建消息部分
                 BodyPart messageBodyPart = new MimeBodyPart();
         
                 // 消息
                 messageBodyPart.setText("This is message body");
                
                 // 创建多重消息
                 Multipart multipart = new MimeMultipart();
         
                 // 设置文本消息部分
                 multipart.addBodyPart(messageBodyPart);
         
                 // 附件部分
                 messageBodyPart = new MimeBodyPart();
                 //发送的附件路径
                 File file = new File("C:\Users\sxcd\Desktop\work\codecommit.txt");
                
                 DataSource source = new FileDataSource(file);
                 messageBodyPart.setDataHandler(new DataHandler(source));
                 messageBodyPart.setFileName("code");
                 multipart.addBodyPart(messageBodyPart);
         
                 // 发送完整消息
                 message.setContent(multipart );
         
                 //   发送消息
                 Transport.send(message);
                 System.out.println("Sent message successfully....");
              }catch (MessagingException mex) {
                 mex.printStackTrace();
              }
        }
    }
  • 相关阅读:
    渲染管线
    C++windows内核编程笔记day13 进程、线程与信号量
    稻盛和夫:真正的聪明人,善于把事物简单化
    学会把复杂问题简单化
    任何事物,只要抓住了规律,就等于牵住了牛鼻子
    菩萨奶奶引领我学佛
    数据库每分钟运行监控SQL
    MySQL 从库down机
    sql server 跟踪日志
    胡小林:把日常生活中碰到的事变成我们发露忏悔的机会
  • 原文地址:https://www.cnblogs.com/lichangyun/p/8968876.html
Copyright © 2011-2022 走看看