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发送邮件的基本步骤如下: 1. 添加Spring核心库和相关的邮件发送库(如JavaMail API)到项目依赖中。 2. 在Spring配置文件(如`email-163.xml`)中配置邮件服务器的相关信息,如用户名、密码、SMTP服务器...
Spring提供了一个`JavaMailSender`接口,该接口定义了发送邮件的基本方法。我们可以通过配置Spring的bean来实现这个接口,以便与JavaMail API集成。在`applicationContext.xml`或Java配置类中,我们可以创建一个`...
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 ...
我们可以创建一个`Multipart`对象,然后将`MimeBodyPart`对象添加到其中,从而实现附件的添加。 `TheadMailInform.java`可能是一个用于处理邮件线程化的类。在发送大量邮件时,为了避免阻塞主线程,我们可能需要...
在Java编程语言中,发送电子邮件是一项常见的任务,特别是在自动化任务、通知系统或者用户服务中。...此外,还可以使用第三方库如Apache Commons Email或JavaMailSender(Spring框架中的组件)来简化邮件发送过程。
对于更复杂的应用场景,还可以使用开源库,如Apache Commons Email或Spring框架中的MailSender,它们提供了更友好的API来简化邮件发送操作。 在提供的标签"源码 工具"中,我们可以理解到,深入学习和理解JavaMail ...
这将引入Spring官方提供的邮件操作库,它包含了处理邮件发送和接收所需的基本组件。 接下来,我们需要配置邮件服务器的参数。这些参数包括SMTP服务器地址、用户名(通常是你的邮箱地址)、密码(对于某些服务提供商...
本文将详细介绍如何在Spring Boot项目中配置和使用JavaMailSender来发送带有附件的邮件。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中添加对`spring-boot-starter-mail`的依赖。对于Maven用户,可以在`...
通常我们会使用如`Properties`类来读取配置文件,或者更高级的框架如Spring Boot的YAML或JSON配置。 其次,**动态生成Excel数据**涉及Java的库,如Apache POI。POI是一个开源项目,提供读写Microsoft Office格式...
在IT行业中,集成Mail服务以实现邮件推送是常见的需求,特别是在使用SpringBoot框架构建应用程序时。SpringBoot以其简洁的配置和强大的功能深受开发者喜爱。在这个"集成mail实现邮件推送带网页样式的消息"项目中,...
在Java编程中,发送邮件...在实际开发中,还可以考虑使用第三方库,如JavaMailSender接口(Spring框架提供)来简化邮件发送的流程。这些库通常会提供更高级的功能,如模板支持、异步发送等,使得邮件发送更加便捷高效。
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @Controller public class MailController { @Autowired private ...
在Java编程语言中,发送邮件是一项常见的任务,特别是在企业级...如果你需要更复杂的邮件功能,例如邮件模板、队列发送等,可以考虑使用第三方库,如Spring框架中的`MailSender`接口,它提供了更便捷的邮件发送服务。
在Spring配置文件中,你需要启用Multipart resolver,例如使用CommonsMultipartResolver,这样Spring才能处理multipart/form-data类型的请求。 ```xml <bean id="multipartResolver" class="org.springframework...
如果你的项目使用Spring框架,可以借助Spring的`@Scheduled`注解简化定时任务的配置,或者使用Spring Boot的`TaskScheduler`。`@Scheduled`可以直接在方法上声明执行周期,例如: ```java import org.spring...
如果你希望扩展功能,可以考虑集成JavaMail与Spring框架,利用Spring的邮件服务,这样可以更方便地管理和配置邮件服务。例如,使用`JavaMailSender`接口和`SimpleMailMessage`类可以简化发送邮件的代码。
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 ``` 然后,我们需要创建...
除了直接使用JavaMail API,还可以借助第三方库,如Apache Commons Email或Spring Framework的Email支持,它们提供更简洁的接口和额外的功能。 通过理解并应用这些知识点,你可以使用JavaMail发送各种复杂格式的...
在实际开发中,我们常常会使用一些简化这一步骤的库,如JavaMail API的实现库JavaMailSender Interface(Spring框架的一部分)或Apache Commons Email库,它们提供了更简洁的API来处理邮件发送。 在“java邮件发送...
1. **MailInfo**:用于封装一条邮件的基本信息。 - 邮件主题 - 邮件序号 - 发件人地址 - 发件时间 - 邮件内容(通过`MailContent`类表示) 2. **MailContent**:用于表示邮件的内容部分。 - HTML内容 - 纯...