`
ispring
  • 浏览: 360016 次
  • 性别: 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 mail通过代理发送邮件

    标题中的“spring mail通过代理发送邮件”指的是使用Spring框架中的JavaMailSender接口和相关的支持类,通过设置代理服务器来发送电子邮件。在某些网络环境中,直接访问SMTP服务器可能会受到限制,这时就需要通过...

    java spring框架 无敌邮件发送

    通过上述步骤和注意事项,您可以利用Spring框架轻松地实现“无敌邮件发送”,为您的应用增添实用的功能。在实际开发中,可以根据具体需求进行调整和扩展,如集成邮件模板引擎,实现更强大的邮件服务。

    Spring+Freemarker 使用163发HTML格式的邮件

    标题 "Spring+Freemarker 使用163发HTML格式的邮件" 描述的是一个使用Spring框架结合Freemarker模板引擎发送HTML格式邮件的过程。在这个场景中,开发人员可能需要通过编程方式向用户发送包含丰富格式内容的邮件,...

    Spring Boot实战之发送邮件示例代码

    Spring Boot是目前非常流行的Java应用框架,它简化了基于Spring的应用开发...通过本篇文章的介绍,我们可以了解到邮件服务的工作原理,如何配置和实现Spring Boot中的邮件发送功能,以及在实际应用中的一些注意事项。

    Spring 3.x 企业应用开发实战,第十八章PDF

    在实际项目中使用Spring邮件支持时,有几个重要的实践经验和注意事项: 1. **邮件服务器配置**:确保正确配置邮件服务器的信息,包括SMTP服务器地址、端口等。这对于邮件的正常发送至关重要。 2. **异常处理**:在...

    spring+maven实现发送邮件功能

    5. **注意事项** - 邮件服务器的设置要根据你的邮箱提供商来确定,例如,对于163邮箱,SMTP服务器可能是`smtp.163.com`,而对于Gmail,则是`smtp.gmail.com`。 - 记得启用SMTP服务,因为很多邮箱提供商默认会关闭...

    java发邮件,亲测有效

    标签中的“java发邮件”指的是使用Java编程语言发送邮件。在Spring Boot项目中,我们可以引入`spring-boot-starter-mail`依赖来支持邮件服务。在Maven的pom.xml文件中,这可以通过添加以下代码实现: ```xml ...

    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 ...

    springquartz源码

    9. **注意事项** - **线程安全**:确保Job是线程安全的,因为Quartz可能并发执行多个Job实例。 - **资源管理**:合理配置ThreadPool大小,避免资源浪费。 通过以上知识点,我们可以看到Spring Quartz为Java开发...

    使用spring @Scheduled注解执行定时任务

    例如,自动备份数据库、定时发送报告邮件、定期清理缓存等。Spring 框架自3.0版本起引入了`@Scheduled`注解来简化定时任务的配置与管理,相较于传统的Quartz等框架,它提供了更为简洁易用的解决方案。 #### 一、...

    java邮件发送

    Java邮件发送是一个常见的任务,它涉及使用JavaMail API与SMTP(简单邮件传输协议)服务器通信,以便通过程序自动化发送电子邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API是Java平台上...

    SpringBoot实现发送邮件功能过程图解

    知识点八:邮件发送的注意事项 邮件发送功能需要注意的一些事项,例如需要配置邮件服务器的相关信息、需要确保邮件服务器的地址和端口正确、需要确保邮件内容的正确性等。在 SpringBoot 项目中,我们需要注意这些...

    spring配置定时器

    ### 四、注意事项 - 在实际项目中,建议使用`@Scheduled`注解或`ScheduledExecutorService`来实现更现代且易于管理的定时任务。 - 考虑到线程安全问题,对于涉及共享资源的操作应采取适当的同步措施。 - 根据业务...

    struts2+spring

    Struts2和Spring是两个非常著名的Java开源框架,它们在企业级Web开发中广泛应用。Struts2主要用于控制应用程序的流程,而Spring则是一个全面的后端...在实际开发中,遵循上述步骤和注意事项,可以有效地完成整合工作。

    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. 支持...

    整合blazeds和spring需要的jar包

    5. **注意事项**: - 确保所有jar包版本兼容,不一致的版本可能导致运行时问题。 - 配置文件的正确性至关重要,错误的配置可能导致服务无法正常工作。 - 考虑安全性,为Blazeds服务设置适当的安全策略,防止未...

    Spring定时器

    Spring定时器的使用可以极大地提高系统的自动化程度,例如,定期进行数据备份、清理过期数据、发送邮件通知等。由于其灵活性和可扩展性,开发者可以根据业务需求自由调整任务执行的时机和频率。 5. **注意事项** ...

    activeMQ+spring+springmvc整合示例

    6. **注意事项**: - 消息的可靠传输:确保消息的正确发送和接收,避免消息丢失或重复。 - 消费者管理:合理控制消费者的数量,防止消息积压或消费者过多导致资源浪费。 - 安全性:对消息队列进行权限控制,防止未...

Global site tag (gtag.js) - Google Analytics