Java发送邮件

​

package com.rosa.utils;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

import javax.mail.Address;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.Multipart;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.*;

import javax.mail.util.ByteArrayDataSource;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.Properties;

/**

 * 测试发送邮件,并且携带附件

 * @author Ben

 * @date 2022/9/16 11:34

 */

public class Email {

     //服务器主机

     public static String emailHost = "smtp.xx.com.cn";

     //发件人地址

     public static String senderAddress = "xiongbenjun@xx.com.cn";

     //发件人账户名

     public static String senderAccount = "xiongbenjun";

     //发件人账户密码

     public static String senderPassword = "**********";

     public void sendEmail(ArrayList<?> list,String title,String text,String filePath) throws Exception {

           

        //1、连接邮件服务器的参数配置

       Properties props = new Properties();

       props.setProperty("mail.smtp.host", emailHost);//设置邮件服务器主机名           

        props.setProperty("mail.transport.protocol", "smtp");//设置传输协议

       props.setProperty("mail.smtp.auth", "true");//发送服务器需要身份验证

       Session session = Session.getDefaultInstance(props);//设置环境信息

       session.setDebug(true); //设置调试信息在控制台打印出来

       MimeMessage message = new MimeMessage(session);

       MimeMultipart multipart = null;

       BodyPart contentPart = null;

       Transport transport = null;

       message.setFrom(senderAddress);//设置发件人

       InternetAddress[] address = new InternetAddress[list.size()];

       for (int i = 0; i < list.size(); i++) {

         address[i] = new InternetAddress(list.get(i).toString());

       }  

       //添加收件人

       message.addRecipients(Message.RecipientType.TO, address);

       //设置抄送人(两个)可有可无抄送人:

       //List<InternetAddress> addresses = Arrays.asList(new InternetAddress("1457034247@qq.com"), new InternetAddress("575814158@qq.com"));

       //InternetAddress[] addressesArr = (InternetAddress[]) addresses.toArray();

       //message.setRecipients(Message.RecipientType.CC, addressesArr);

       //设置密送人 可有可无密送人:

       //InternetAddress toBCC = new InternetAddress(toEmail);

       //message.setRecipient(Message.RecipientType.BCC, toBCC);

       message.setSubject(title); //设置主旨

       multipart = new MimeMultipart();

       contentPart = new MimeBodyPart(); // 用来设置正文的

       contentPart.setText(text);

       multipart.addBodyPart(contentPart);      

       if (("".equals(filePath))||(filePath == null)) {

       }else {   

        MimeBodyPart attrBodyPart = new MimeBodyPart(); // 用来设置附件的

        File file = new File(filePath);

        DataSource dataSource = new FileDataSource(file);

           attrBodyPart.setDataHandler(new DataHandler(dataSource));

           ///imagepart.setHeader("Content-ID", "<img02>");//value要和图片的cid对应才能嵌入在html中,否则就会变成附件

           // 设置编码格式,使附件能正常显示中文名

           attrBodyPart.setFileName(MimeUtility.encodeText(file.getName(), "UTF-8", "B"));

           multipart.addBodyPart(attrBodyPart);

       }     

       message.setContent(multipart, "text/html;charset=UTF-8");

       message.saveChanges();

       transport = session.getTransport("smtp");

       transport.connect(emailHost, senderAddress, senderPassword);

       transport.sendMessage(message, message.getAllRecipients());

           //5、关闭邮件连接

        transport.close();

     }

}

导入包:

   <!-- Email -->
    <dependency>    
        <groupId>org.springframework.boot</groupId>    
        <artifactId>spring-boot-starter-mail</artifactId>    
    </dependency>
​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值