zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
    

      

  • 相关阅读:
    Linux.NET学习手记(1)
    初识Entity Framework CodeFirst(3)
    初识Entity Framework CodeFirst(2)
    Linux.NET学习手记(3)
    Linux.NET学习手记(2)
    第四次博客作业结对项目
    [转]制作BlogWriter 博客客户端
    【整理】C# WinFrom 中如何txt内容与dataGridView互动
    将字符串给datetimepicker赋值
    (转)koograExcel文件读取利器的使用
  • 原文地址:https://www.cnblogs.com/Wonderful-Life/p/14098030.html
Copyright © 2011-2022 走看看