码迷,mamicode.com
首页 > 编程语言 > 详细

java发送邮件

时间:2018-04-28 19:39:07      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:etc   获取默认   message   电子   sys   ...   default   tst   new   

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();
          }
    }
}

 

java发送邮件

标签:etc   获取默认   message   电子   sys   ...   default   tst   new   

原文地址:https://www.cnblogs.com/lichangyun/p/8968876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!