`
ispring
  • 浏览: 355983 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用 Spring 发送邮件的注意事项

阅读更多
使用Spring 的封装的MailSender,确实省事多了!
但在使用中,还是得注意些问题

1.增加验证,否则会报:553 authentication is required 的错误信息
Properties prop = new Properties(); 
prop.setProperty("mail.smtp.auth", "true"); 
JavaMailSenderImpl.setJavaMailProperties(prop);

注意:此处 prop.setProperty("mail.smtp.auth", "true"); 中 true 必须用双引号引用起来,不然会报错,具体原因参考 Properties 文档.

2.当邮件内容是HTML语言时的中文问题:
初始化MimeMessageHelper辅助类时,设置"GBK" encoding!
如:
MimeMessageHelper messageHelp = new MimeMessageHelper(message,true,"GBK"); 

同时在设置:<META http-equiv=Content-Type content='text/html; charset=GBK'>
如果都设置为"UTF-8",在某些邮件客户端标题是冷僻字时,不能正常显示!

3.邮件附件的中文问题!
spring的文档里面说MimeMessageHelper设置了encoding,同时对title,text,attach产生作用,但还是会出问题:
解决方法:
MimeUtility.encodeWord(file.getName());


以下是一段完整的邮件发送测试代码,暂无附件设置
/**
 * MailTest.java
 * Created on 2008-1-23 下午04:56:38
 * Description: Test for mail sending
 */
package cn.edu.ccnu.inc.test;

import java.util.Properties;

import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import junit.framework.TestCase;

/**
 * @author <a href="mailto:huangfengjing@163.com">Iven</a>
 */
public class MailTest extends TestCase {
	
	private static MailSender sender = null;
	private static SimpleMailMessage message = null;

	public void setUp() {
		sender = new JavaMailSenderImpl();
		((JavaMailSenderImpl)sender).setHost("smtp.163.com");
		((JavaMailSenderImpl)sender).setUsername("username");
		((JavaMailSenderImpl)sender).setPassword("password");
		Properties config = new Properties();
		config.put("mail.smtp.auth", "true");
		((JavaMailSenderImpl)sender).setJavaMailProperties(config);
		message = new SimpleMailMessage();
	}
	
	public void testSend() {
		message.setTo("huangfengjing@yahoo.com.cn");
		message.setSubject("Test my owen sending program");
		message.setFrom("huangfengjing@163.com");
		message.setText("Test......");
		
		this.assertNotNull(sender);
		
		sender.send(message);
	}
}


4.最后
注意:在用户名和密码都没有问题的情况下,如果代码抛出javax.mail.AuthenticationFailedException异常,先用OutLook测试一下看能否进行正常的收发邮件,有时信箱如果是新注册的话,邮件的服务商默认刚注册的帐号是不能使用pop3的。例如163.com在我进行代码测试时,刚刚注册的帐号是没有权限使用该功能的,所以就会抛出上述的异常。
分享到:
评论

相关推荐

    Spring Boot整合邮件发送与注意事项

    主要给大家介绍了关于Spring Boot整合邮件发送与注意事项的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring中文帮助文档

    在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect ...

    Spring API

    在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect ...

    springboot参考指南

    发送邮件 xi. 32. 使用JTA处理分布式事务 i. 32.1. 使用一个Atomikos事务管理器 ii. 32.2. 使用一个Bitronix事务管理器 iii. 32.3. 使用一个J2EE管理的事务管理器 iv. 32.4. 混合XA和non-XA的JMS连接 v. 32.5. 支持...

    spring boot+vue开发前后端分离无限速文件管理系统

    项目描述 一个 vue-element结合 七牛云 的云端网盘...注意事项 1.npm install前端代码后,npm run dev出错的话,可以删除node_modules文件夹,再重新install 2.注册时,发送邮件需要设置自己的smtp服务,否则会抛出异常

    Struts2项目综合案例

    其中dataInsert.sql是建表、视图sql,存储过程是批量插入测试数据,具体注意事项请看readme.txt文件。本压缩包仅有源代码和配置文件,相关运行的jar包需自己调式加入,如有问题,请发邮件或加我MSN:yetree@hotmail....

    基于SpringBoot的重庆旅游推荐网站+源代码+文档说明

    邮箱验证使用Spring-mail提供的API处理,邮件发送服务器[application.yml](src/main/resources/application.yml)进行配置。 ### 整合redis 使用Spring-redis-template进行redis操作,redis用来存储用户收藏文章信息和...

    Guns 文档高级版 v20191027.pdf

    高级使用手册 4.1 修改项目名和包名 4.2 在线参数配置 4.3 模板位置的变更 4.4 顶部广告的关闭 4.5 添加登录验证码 4.6 spring profile 4.7 多机器部署注意事项 4.8 XSS过滤器 4.8.1 介绍 4.8.2 原理 4.8.3 放过...

    Bug管理系统 struts2+sping2.5+hibernate3(1-2)

    注意事项: 1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序...

    Bug管理系统 struts2+sping2.5+hibernate3(2-2)

    注意事项: 1 TOMCAT安装路径中请不要包含中文字符,否则程序将不能正常运行. 目录及文件: debug\document PDM及数据库脚本。 作者留言: 本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序...

    Active4j-boot快速开发框架-其他

    2、Active4j目前内置了部门管理、用户管理、角色管理、菜单管理、数据数据字典、定时任务、常用系统监控等基础功能,并内置了文件上传下载、导入导出、短信功能、邮件发送等常用工具,整合了layui前端常用组件。...

    开源中国源码

    ## 注意事项 - 由于数据库内容被我清空了,有时候我上传的solr里的数据我可能没清空,导致首页及频道页面查询不到数据会报错,解决方法:运行solr前进入`E:\solr\server\solr\info\data` 目录下删除里面的三个文件夹...

    互联网创意产品众筹平台

    │ 10-模糊查询-注意事项 │ 11-附录1.JS中局部变量和全局变量区别 │ d( L, Z2 p" ] ├─众筹项目-第05天《Atcrowdfunding》) A% ]3 K. N. T& e) [7 J │ ├─代码 │ ├─笔记 │ └─视频2 @8 e5 L% ~) b6 _) f....

    asp.net知识库

    .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL Artisan应用简介1 在Framework1.0下...

Global site tag (gtag.js) - Google Analytics