`
yingruochen
  • 浏览: 75215 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Multipart email 的基本使用

阅读更多

Multipart Email允许添加附件和内部资源,内部资源可能是你在信件中希望使用的图像或样式表,但又不想把它们作为附件

一、附件:

接口:见MailSender和SimpleMailMessage的基本用法

实现类:

package com.mail.sender;

import com.mail.service.OrderManager;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.MailException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.lang.management.MonitorInfo;

/** Multipart Email-添加附件
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 12-6-13
 * Time: 上午11:19
 * To change this template use File | Settings | File Templates.
 */
public class MimeHelper implements OrderManager {

    private JavaMailSender javaMailSender;

    public void setJavaMailSender(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }

    public void placeOrder() throws MessagingException {

        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = null;
        try {
            helper = new MimeMessageHelper(message,true); //使用Multipart格式
        } catch (MessagingException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        FileSystemResource file = new FileSystemResource(new File("C:\\Users\\Administrator\\Pictures\\1.png"));

        try {
            helper.setTo("240609256@qq.com");//toXXX邮箱
            helper.setFrom("hanxiaoying@iplamp.com"); //from XXX邮箱
            helper.setSubject("helper");
            helper.setText("hello");
            helper.addAttachment("1.png",file);        //添加附件
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

    }
}

 配置文件见:MimeMessageHelper的基本用法 的配置文件

测试没有异常就成功了

效果如下:


 

 

二、内部资源

实现类:

package com.mail.sender;

import com.mail.service.OrderManager;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * Created by IntelliJ IDEA.
 * User: Administrator
 * Date: 12-6-13
 * Time: 下午1:51
 * To change this template use File | Settings | File Templates.
 */
public class InResource implements OrderManager {

    private JavaMailSender javaMailSender;

    public void setJavaMailSender(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }

    public void placeOrder() throws MessagingException {

        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = null;
        try {
            helper = new MimeMessageHelper(message, true); //使用Multipart格式
        } catch (MessagingException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        FileSystemResource file = new FileSystemResource(new File("C:\\Users\\Administrator\\Pictures\\1.png"));

        try {
            helper.setTo("240609256@qq.com");//toXXX邮箱
            helper.setFrom("hanxiaoying@iplamp.com"); //from XXX邮箱
            helper.setSubject("helper");
            helper.setText("hello,看图:<html><body><img src='cid:identifier1234'></body></html>", true);//true 表示启动HTML格式的邮件
            helper.addInline("identifier1234", file);       //添加附件
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

    }

}
 

配置文件:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.exmail.qq.com"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="username" value="hanxiaoying@iplamp.com"/>
        <property name="password" value="hanxiaoying0303"/>
        <property name="javaMailProperties">
            <value>
                mail.smtp.auth=true
            </value>
        </property>
    </bean>
    <bean id="inResource" class="com.mail.sender.InResource">
        <property name="javaMailSender" ref="mailSender"/>
    </bean>

 测试一下,看下有没有成功:

 


 

 

  • 大小: 23.3 KB
  • 大小: 6.5 KB
分享到:
评论

相关推荐

    Spring进阶—如何用Java代码实现邮件发送

    使用Spring发送邮件的基本步骤如下: 1. 添加Spring核心库和相关的邮件发送库(如JavaMail API)到项目依赖中。 2. 在Spring配置文件(如`email-163.xml`)中配置邮件服务器的相关信息,如用户名、密码、SMTP服务器...

    SpringUseJavaMailSendEmail(spring使用javamail发送邮件的例子)

    Spring提供了一个`JavaMailSender`接口,该接口定义了发送邮件的基本方法。我们可以通过配置Spring的bean来实现这个接口,以便与JavaMail API集成。在`applicationContext.xml`或Java配置类中,我们可以创建一个`...

    spring-boot-reference.pdf

    36. Sending Email 37. Distributed Transactions with JTA 37.1. Using an Atomikos Transaction Manager 37.2. Using a Bitronix Transaction Manager 37.3. Using a Narayana Transaction Manager 37.4. Using a ...

    spring+javamail代码示例

    我们可以创建一个`Multipart`对象,然后将`MimeBodyPart`对象添加到其中,从而实现附件的添加。 `TheadMailInform.java`可能是一个用于处理邮件线程化的类。在发送大量邮件时,为了避免阻塞主线程,我们可能需要...

    java email 发送文档

    在Java编程语言中,发送电子邮件是一项常见的任务,特别是在自动化任务、通知系统或者用户服务中。...此外,还可以使用第三方库如Apache Commons Email或JavaMailSender(Spring框架中的组件)来简化邮件发送过程。

    java 工具类-----email

    对于更复杂的应用场景,还可以使用开源库,如Apache Commons Email或Spring框架中的MailSender,它们提供了更友好的API来简化邮件发送操作。 在提供的标签"源码 工具"中,我们可以理解到,深入学习和理解JavaMail ...

    Spring Boot如何开启并使用邮件服务

    这将引入Spring官方提供的邮件操作库,它包含了处理邮件发送和接收所需的基本组件。 接下来,我们需要配置邮件服务器的参数。这些参数包括SMTP服务器地址、用户名(通常是你的邮箱地址)、密码(对于某些服务提供商...

    SpringBoot中整合Mail实现发送带附件的邮件示例代码

    本文将详细介绍如何在Spring Boot项目中配置和使用JavaMailSender来发送带有附件的邮件。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中添加对`spring-boot-starter-mail`的依赖。对于Maven用户,可以在`...

    java配置文件动态配置excel导出动态数据并发送email

    通常我们会使用如`Properties`类来读取配置文件,或者更高级的框架如Spring Boot的YAML或JSON配置。 其次,**动态生成Excel数据**涉及Java的库,如Apache POI。POI是一个开源项目,提供读写Microsoft Office格式...

    集成mail实现邮件推送带网页样式的消息.zip

    在IT行业中,集成Mail服务以实现邮件推送是常见的需求,特别是在使用SpringBoot框架构建应用程序时。SpringBoot以其简洁的配置和强大的功能深受开发者喜爱。在这个"集成mail实现邮件推送带网页样式的消息"项目中,...

    java 发送邮件

    在Java编程中,发送邮件...在实际开发中,还可以考虑使用第三方库,如JavaMailSender接口(Spring框架提供)来简化邮件发送的流程。这些库通常会提供更高级的功能,如模板支持、异步发送等,使得邮件发送更加便捷高效。

    springboot实现邮箱发送功能

    import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Controller public class MailController { @Autowired private ...

    Java中发送Mail

    在Java编程语言中,发送邮件是一项常见的任务,特别是在企业级...如果你需要更复杂的邮件功能,例如邮件模板、队列发送等,可以考虑使用第三方库,如Spring框架中的`MailSender`接口,它提供了更便捷的邮件发送服务。

    Spring学习笔记2之表单数据验证、文件上传实例代码

    在Spring配置文件中,你需要启用Multipart resolver,例如使用CommonsMultipartResolver,这样Spring才能处理multipart/form-data类型的请求。 ```xml &lt;bean id="multipartResolver" class="org.springframework...

    java发送邮件附件以及定时任务

    如果你的项目使用Spring框架,可以借助Spring的`@Scheduled`注解简化定时任务的配置,或者使用Spring Boot的`TaskScheduler`。`@Scheduled`可以直接在方法上声明执行周期,例如: ```java import org.spring...

    Java发送邮件代码

    如果你希望扩展功能,可以考虑集成JavaMail与Spring框架,利用Spring的邮件服务,这样可以更方便地管理和配置邮件服务。例如,使用`JavaMailSender`接口和`SimpleMailMessage`类可以简化发送邮件的代码。

    sendmail.zip

    spring.mail.username=your-email@example.com spring.mail.password=your-password spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true ``` 然后,我们需要创建...

    javamai发送邮件的jar包

    除了直接使用JavaMail API,还可以借助第三方库,如Apache Commons Email或Spring Framework的Email支持,它们提供更简洁的接口和额外的功能。 通过理解并应用这些知识点,你可以使用JavaMail发送各种复杂格式的...

    java邮件发送jar

    在实际开发中,我们常常会使用一些简化这一步骤的库,如JavaMail API的实现库JavaMailSender Interface(Spring框架的一部分)或Apache Commons Email库,它们提供了更简洁的API来处理邮件发送。 在“java邮件发送...

    如何使用Java的mail的jar包查看邮件收信箱(简单易懂)

    1. **MailInfo**:用于封装一条邮件的基本信息。 - 邮件主题 - 邮件序号 - 发件人地址 - 发件时间 - 邮件内容(通过`MailContent`类表示) 2. **MailContent**:用于表示邮件的内容部分。 - HTML内容 - 纯...

Global site tag (gtag.js) - Google Analytics