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();
              }
        }
    }
  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/lichangyun/p/8968876.html
Copyright © 2011-2022 走看看