精华内容
下载资源
问答
  • MimeMessage 发送邮件附件

    万次阅读 2010-07-01 13:37:00
     import java.io.File;...import javax.mail.internet.MimeMessage; <br /> import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathR

       import java.io.File;

    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.mail.MailException;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;

    import com.opensymphony.xwork2.TextProvider;
    import com.yinhoo.elink.domain.Branch;
    import com.yinhoo.elink.domain.Message;
    import com.yinhoo.elink.helper.Constants;
    import com.yinhoo.elink.helper.form.EmailTemplate;
    import com.yinhoo.elink.helper.form.SignupForm;
    import com.yinhoo.framework.spring.PropertiesManager;

     

    public void sentGeneralReportToEmails(String toEmailAddress, String htmlPath, Message message, TextProvider provider) throws Exception{
            EmailTemplate verifyReplyAddressEmail = this.emailTemplateCenter.getSendReportTemplate(message, provider);
            MimeMessage mimeMessage = mailSender.createMimeMessage(); 
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,Constants.UTF_8);
            helper.setTo(toEmailAddress.split(Constants.DELIMITER));
            helper.setSubject(verifyReplyAddressEmail.getSubject());
            helper.setText(verifyReplyAddressEmail.getTextContent());
            helper.addAttachment(new File(htmlPath).getName(), new File(htmlPath));  
            this.mailSender.send(mimeMessage);
        }

    展开全文
  • 2,准备邮件内容 //设置端口信息 MimeMessage message = new MimeMessage(session); // 2. From: 发件人 message.setFrom(new InternetAddress("xxxx@xx.com", "人名", "UTF-8")); // 3. To: 收件人(可以增加多个...

    1, 配置邮件服务器

    // 设置邮件端口信息
    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
    props.setProperty("mail.smtp.host", "smtp.xxx.com"); // 发件人的邮箱的 SMTP 服务器地址
    props.setProperty("mail.smtp.auth", "true");
    props.setProperty("mail.smtp.port", "000");
    session = javax.mail.Session.getInstance(props);
    

    2,准备邮件内容

    //设置端口信息
    MimeMessage message = new MimeMessage(session);
    // 2. From: 发件人
    message.setFrom(new InternetAddress("xxxx@xx.com", "人名", "UTF-8"));
    // 3. To: 收件人(可以增加多个收件人、抄送、密送)
    message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("xxx@xx.com"));
    
    // 4,抄送人
    message.addRecipient(MimeMessage.RecipientType.CC, new InternetAddress("xxx@.com"));
           
    // 5. Subject: 邮件主题
    message.setSubject("xxx标题", "UTF-8");
    
    // 6,设置邮件内容,混合模式
    MimeMultipart msgMultipart = new MimeMultipart("mixed");
    message.setContent(msgMultipart);
    
    // 7,设置消息正文
    MimeBodyPart content = new MimeBodyPart();
    msgMultipart.addBodyPart(content);
    
    // 8,设置正文格式
    MimeMultipart bodyMultipart = new MimeMultipart("related");
    content.setContent(bodyMultipart);
    
    // 9,设置正文内容
    MimeBodyPart htmlPart = new MimeBodyPart();
    bodyMultipart.addBodyPart(htmlPart);
    htmlPart.setContent("邮件内容,html格式", "text/html;charset=UTF-8");
    
    // 10,设置附件
    if (CollectionUtils.isNotEmpty(fileList)) {
        fileList.stream().forEach(file -> {
           if (file == null || !file.exists()) {
               return;
           }
           try {
               //设置相关文件
               MimeBodyPart filePart = new MimeBodyPart();
               FileDataSource dataSource = new FileDataSource(file);
               DataHandler dataHandler = new DataHandler(dataSource);
               // 文件处理
               filePart.setDataHandler(dataHandler);
               // 附件名称
               filePart.setFileName(file.getName());
               // 放入正文(有先后顺序,所以在正文后面)
               msgMultipart.addBodyPart(filePart);
           } catch (Exception e) {
               logger.error("send mail file error fileName={}", file.getName(), e);
           }
        });
    }
    
    // 11. 设置发件时间
    message.setSentDate(new Date());
    
    // 12. 保存文件准备发送
    message.saveChanges();
    
    return message;

    3,采用线程异步进行邮件发送

    emailPool.execute(() -> {
        Transport transport = session.getTransport();
        // a,连接邮箱
        transport.connect(“xxx@xxx.com”, "password");
    
        // b,第2步中准备的邮件内容
        MimeMessage message = createMimeMessage(mail);
    
        // c,开始发送邮件
        transport.sendMessage(message, message.getAllRecipients());
    });

    4,一些引入的类

    import java.io.File;
    ​​​​​​​import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.MessagingException;
    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;

     

    展开全文
  • 如图,简单使用JavaMailSender发送邮件附件,今天发现163邮箱接收后excel文件附件变成了.bin文件 try { if (StringUtil.isEmpty(mailAddr)) { log.warn("未检测到发送地址,不发送"); return false; } ...

    如图,简单使用JavaMailSender发送邮件附件,今天发现163邮箱接收后excel文件附件变成了.bin文件

            try {
                if (StringUtil.isEmpty(mailAddr)) {
                    log.warn("未检测到发送地址,不发送");
                    return false;
                }
                MimeMessage mimeMessage = mailSender.createMimeMessage();
                MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
                mimeMessageHelper.setFrom(from);
                mimeMessageHelper.setTo(mailAddr.split(","));
                mimeMessageHelper.setSubject(title);
                mimeMessageHelper.setText(mailContentText);
                mimeMessageHelper.addAttachment(file.getName(), file);
                mailSender.send(mimeMessage);
            } catch (Exception e) {
                log.error("文件【{}】邮件报送失败:{}",title, e);
                return false;
            }
    


    阿里邮箱和QQ邮箱都没问题,初步判断是网易邮箱协议问题,附件名字太长导致。
    在项目启动初始化一句代码即可

        {
            System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
        }
    
    展开全文
  • Mimemessage

    2004-08-02 15:46:02
    用来对邮件进行编码并发送,它的特性: - 使用者可定义的头部和主题的分开。 - 多用途互联网邮件扩充 ,分别定义了encoding 和 HTML 两种模式。 - 自动的内容类型识别,自动识别附件。 - 支持为 multipart/ 相关...
  • Java mail 发送 MimeMessage 邮件

    万次阅读 2017-05-23 19:15:35
    // 发送服务器端口,可以不设置,默认是25 properties.setProperty( "mail.smtp.port" , mailConfig .getPort()) ; // 发送邮件协议名称 properties.setProperty( "mail.transport.protocol" , ...
    import com.derbysoft.common.config.MailConfig;
    import com.derbysoft.common.utils.string.StringUtil;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import javax.activation.DataHandler;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.mail.util.ByteArrayDataSource;
    import java.io.IOException;
    import java.util.Properties;
    
    /**
     * Created by Harry on 2017/5/18.
     */
    @Component
    public class MailUtil {
    
        @Autowired
        MailConfig mailConfig;
    
        /**
         * 发送邮件
         * 文本内容支持html标签
         *
         * @param senderName sender name default dplatform
         * @param to         if exist more than one receiver using , splite
         * @param cc         if exist more than one receiver using , splite
         * @param subject
         * @param content
         * @param bytes      annex array
         * @param names      annex names
         * @throws MessagingException
         * @throws IOException
         */
        public void sendMail(String senderName, String to, String cc, String subject, String content, byte[][] bytes, String[] names) throws MessagingException, IOException {
    
            // 属性对象
            Properties properties = properties();
            // 环境信息
            Session session = Session.getInstance(properties, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    // 在session中设置账户信息,Transport发送邮件时会使用W
                    return new PasswordAuthentication(mailConfig.getUserName(), mailConfig.getPassWord());
                }
            });
    
            //邮件
            MimeMessage msg = new MimeMessage(session);
            //设置主题
            msg.setSubject(subject);
            //发件人,注意中文的处理
            msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText(senderName) + "\"<" + mailConfig.getUserName() + ">"));
            //设置邮件回复人
    //        msg.setReplyTo(new Address[]{new InternetAddress("harry.hu@derbysoft.com")});
    
            msg.setRecipients(Message.RecipientType.TO, to);
            if (!StringUtil.isEmpty(cc)) {
                msg.setRecipients(Message.RecipientType.CC, cc);
            }
            //整封邮件的MINE消息体
            MimeMultipart msgMultipart = new MimeMultipart("mixed");//混合的组合关系
            //设置邮件的MINE消息体
            msg.setContent(msgMultipart);
    
            // 装载附件
            if (bytes != null && names != null) {
                for (int i = 0; i < bytes.length; i++) {
                    MimeBodyPart attch = new MimeBodyPart(); // 附件
                    msgMultipart.addBodyPart(attch);         // 将附件添加到MIME消息体中
                    ByteArrayDataSource dataSource = new ByteArrayDataSource(bytes[i], "text/data"); //数据源
                    attch.setDataHandler(new DataHandler(dataSource));
                    attch.setFileName(names[i]);
                }
            }
    
            //html代码部分
            MimeBodyPart htmlPart = new MimeBodyPart();
            msgMultipart.addBodyPart(htmlPart);
            //html代码
            htmlPart.setContent(content, "text/html;charset=utf-8");
            //发送邮件
            Transport.send(msg, msg.getAllRecipients());
    
        }
    
        protected Properties properties() {
            // 属性对象
            Properties properties = new Properties();
            // 开启debug调试 ,打印信息
            properties.setProperty("mail.debug", "false");
            // 发送服务器需要身份验证
            properties.setProperty("mail.smtp.auth", mailConfig.getAuth());
            // 发送服务器端口,可以不设置,默认是25
            properties.setProperty("mail.smtp.port", mailConfig.getPort());
            // 发送邮件协议名称
            properties.setProperty("mail.transport.protocol", mailConfig.getProtocol());
            // 设置邮件服务器主机名
            properties.setProperty("mail.host", mailConfig.getHost());
    
            return properties;
        }
    
    }
    
    展开全文
  • 1、java.util.Properties类 java.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种。 key-value类型的配置文件大略长这样: ... 设置邮件文本内容、HTML内容、附件内容。
  • 由于Java在开发网页上占有绝大优势,所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必然,网络安全一再安全我们需要把账号的安全级别提到更高!因此这些对于开发人员也就成了必须掌握的技能!我一直都...
  • 发送附件5.发送内联资源 Spring框架提供了一种使用JavaMailSender接口发送电子邮件的简单抽象方法,而Spring Boot为其提供了自动配置以及启动程序模块。 1.准备工作 1.1 开启第三方登录邮箱 以qq邮箱为例: 进入邮箱...
  • 最近项目中是有个发送邮件的需求,但是需要在附件中携带excel附件,这里有两种实现方式,一种是先生成文件,然后发送附件, 一种是不借助文件直接通过流的形式发送附件,这博文主要介绍通过流的方式发送excel 附件:...
  • //带有附件 FileSystemResource file1 = new FileSystemResource ( new File ( "C:/Users/Administrator/Desktop/eee.png" ) ) ; helper . addAttachment ( "ees.png" , file1 ) ; FileSystemResource ...
  • * 发送邮件带附件 * * @param toEmail * 接收人列表 * @param ccEmail * 抄送人列表 * @param bccEmail * 密送人列表 * @param content * 邮件内容 * @param emailTitle * 邮件标题 * @param fileList...
  • Spring发送附件邮件

    2021-06-08 07:52:03
    下面是一个例子使用Spring通过GmailSMTP服务器来发送电子邮件附件。为了包含附件的电子邮件,你必须使用Spring的JavaMailSender及...必须使用 JavaMailSender 代替 MailSender 发送附件,并用 MimeMessageHe...
  • 发送“Java邮件发送附件名变.dat问题.xlsx”, 收到的却是“ATT_000781.dat”。 如图: 原因: 参数mail.mime.splitlongparameters 在linux下 会默认为 true,附件名在发送时会被base64加密,如果加密后的数据长度...
  • public boolean sendHtmlMail(String to, String subject, String content, InputStreamSource file, String fileName) throws MessagingException, ... MimeMessage mimeMessage = javaMailSender.
  • 使用springboot发送QQ邮件 1、在application.properties中写入以下配置信息 #文件上传的配置信息 #总大小 spring.servlet.multipart.max-request-size=10MB #单个文件总大小 spring.servlet.multipart.max-file-...
  • 用javamail发送附件

    2012-05-18 17:45:07
    REF:http://coolshell.cn/articles/4261.html 有人封装了另一包,功能强大易用,不仅仅只能用来发送附件、html邮件,参考:http://jodd.org/doc/email.htmlimport java.io.ByteArrayInputStream; import java.io....
  • 还是在“SprongBoot发送邮件(一)发送简单文本邮件HelloWorld”的配置基础上添加如下代码: /** * @param to * @param subject * @param content * @param filePath 文件路径 * @throws MessagingException...
  • http://download.csdn.net/detail/viviwen123/3677063是之前上传的资源,但只能发送普通邮件,不能发送附件。现在CSDN不知怎么了,竟然不可以修改说明,只好在此发文更正了。只要在GMailSender.java文件里加入以下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,657
精华内容 3,462
关键字:

mimemessage发送附件