Java 发送邮件. 添加标题,附件, 链接等

EmailSender.SendEmail()

方法发送邮件, 需要配置发送邮件的服务器配置

方法参数:

subject : 邮件主题

content: 邮件正文

to : 邮件接收人

cc : 邮件抄送人

attachments: 邮件附件

注意:

正文可以添加, html格式, 但邮件正文配置时, 必须有Html格式.

正文换行必须是<br>, 而不能是 换行字符

链接也是Html格式. <a></a>标签

String content = "Dear,<br>" +
"This is test message. <br>" +
"链接: <a href=XXXXXX>Test</a>";

package com.company;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Properties;

public class EmailSender {
    public static void SendEmail(String subject, String content, String to, String cc, File attachments){
        // 获取系统属性
        Properties properties = System.getProperties();
        // 设置邮件服务器
        properties.setProperty("mail.smtp.host", "XXX"); // 指定发送邮件的主机
        properties.setProperty("mail.smtp.post", "25");
        properties.put("mail.smtp.auth", "true"); //允许授权用户
        // 获取默认session对象
        Session session = Session.getDefaultInstance(properties,new Authenticator(){
            public PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication("XXX", "*******"); //发件人邮件用户名、授权码
            }
        });
//        session.setDebug(true);  //开启后有调试信息
        try{
            MimeMessage message = new MimeMessage(session); // 创建默认的 MimeMessage 对象。

            // Set From: 头部头字段,
            // 发件人电子邮箱
            message.setFrom(new InternetAddress("XXX"));

            // Set To: 发送人
           message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

            // Set To: 抄送人
             message.addRecipient(Message.RecipientType.CC, new InternetAddress(cc));

            // Set Subject: 邮件主题
            message.setSubject(subject);

            // 添加附件
            // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
            Multipart multipart = new MimeMultipart();

            // 添加邮件正文
            BodyPart contentPart = new MimeBodyPart();
            contentPart.setContent(content, "text/html;charset=UTF-8");
            multipart.addBodyPart(contentPart);

            // 添加附件的内容
            if (attachments != null && attachments.length > 0) {
                BodyPart attachmentBodyPart = null;
                try {
                        attachmentBodyPart = new MimeBodyPart();
                        DataSource source = new FileDataSource(attachments);
                        attachmentBodyPart.setDataHandler(new DataHandler(source));

                        //MimeUtility.encodeWord可以避免文件名乱码
                        attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachments.getName()));
                        multipart.addBodyPart(attachmentBodyPart);
                    }
                    catch (UnsupportedEncodingException e){
                        e.printStackTrace();
                    }
            }

            // 将multipart对象放到message中
            message.setContent(multipart);

            //   发送消息
            Transport.send(message);
            System.out.println("Sent message successfully...");
        }
        catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

  

原文地址:https://www.cnblogs.com/Wonderful-Life/p/14098030.html