使用spring实现邮件的发送实例(含测试,源码,注释)

时间:2021-05-19

此篇主要讲的是使用spring配置实现邮件发送,与之前的底层实现简便了不少,只需要几个配置就可以了,那么请往下看:

先写个接口

/** * @Title: IMailserdService.java * @Package org.service * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午10:36:34 * @version V1.0 */ package org.service; /** * * 项目名称:spring_Schop8 * 类名称:IMailserdService * 类描述: * 创建人:Mu Xiongxiong * 修改备注: * @version * */ public interface IMailsendService { /** * * @Title: sendMessage * @Description: 该方法的主要作用:发送邮件 * @param 设定文件 * @return 返回类型:void * @throws */ void sendMessage(); }

然后在写个实现该接口的类:

/** * @Title: AttMailsendServiceImpl.java * @Package org.service.impl * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午11:12:02 * @version V1.0 */ package org.service.impl; import java.io.IOException; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.service.IMailsendService; import org.springframework.core.io.ClassPathResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; /** * * 项目名称:spring_Schop8 * 类名称:AttMailsendServiceImpl * 类描述: 使用spring实现对邮件的发送 * 创建人:Mu Xiongxiong * 修改备注: * @version * */ public class AttMailsendServiceImpl implements IMailsendService { private JavaMailSender javaMailSender; /**(非 Javadoc) * <p>Title: sendMessage</p> * <p>Description(描述):发送带附件的邮件 </p> * @see org.service.IMailsendService#sendMessage() */ @Override public void sendMessage() { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper; try { helper = new MimeMessageHelper(message,true,"utf-8"); helper.setFrom("jerry@mail.com"); helper.setTo("tina@mail.com"); helper.setSubject("带附件的邮件"); //普通格式的 //helper.setText("发送一个附件内容!<a href='http://"></property> <property name="port" value="25"></property> <property name="username" value="jerry"></property> <property name="password" value="123" ></property> <property name="protocol" value="smtp"></property> <property name="defaultEncoding" value="utf-8"></property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> <!-- 配置FreeMarker--> <bean id="freeMarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean"> <!-- 指定模板文件路径 --> <property name="templateLoaderPath" value="org/doc/"></property> <!-- 设置freekMarker环境变量 --> <property name="freemarkerSettings"> <props> <prop key="default_encoding">UTF-8</prop> </props> </property> </bean> <!-- 简单邮件 --> <bean id="simpleMailsendService" class="org.service.impl.SimpleMailsendServiceImpl"> <property name="sender" ref="mailsender"></property> </bean> <!-- html和带附件的邮件 --> <bean id="AttMailsendService" class="org.service.impl.AttMailsendServiceImpl"> <property name="javaMailSender" ref="mailsender"></property> </bean> <!-- 使用模板发送邮件--> <bean id="createMatterService" class="org.service.impl.CreateMatterServiceImpl"> <property name="configuration" ref="freeMarkerConfiguration"></property> <property name="javaMailSender" ref="mailsender"></property> </bean> </beans>

当前时间已经是00点多了,又累又困,我就不详细解释这个applicationContexct.xml里面的内容了,里面有注释,看不懂的可以评论,我第一时间改进!

接着我们测试一下:

TestMail:

package org.test; import org.junit.Test; import org.service.IMailsendService; import org.service.impl.Mail; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMail { @Test public void testMail() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //简单邮件 //IMailsendService mailsendService=(IMailsendService) ctx.getBean("simpleMailsendService"); //复杂邮件 //IMailsendService mailsendService=(IMailsendService) ctx.getBean("AttMailsendService"); //使用模板的文件 IMailsendService mailsendService=(IMailsendService) ctx.getBean("createMatterService"); mailsendService.sendMessage(); System.out.println("发送成功!"); } }

注明一下:简单邮件是直接发的文本内容,复杂邮件是包含html格式和附件的,模板发送是html格式的另一种方式,我们来看看运行的结果:

先看看带附件,还有html格式的邮件:


接下来是简单邮件:


接下来的一种是使用模板发送邮件,用户名是动态上去的:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章