spring smtp

对于使用Java发送电子邮件, JavaMail API是标准解决方案。 如官方网页所述,“ JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递应用程序”。 必需的类包含在JavaEE平台中,但是要在独立的JavaSE应用程序中使用它,您必须从这里下载相应的JAR。

注意:除非您使用的是Java SE 6,否则还需要提供javax.activation包的JavaBeans Activation Framework(JAF)扩展。 我们建议您使用最新版本的JAF 1.1.1版本。 JAF包含在Java SE 6中。

不幸的是,JavaMail可能有点笨拙,并且难以配置和使用。 如果您已经为应用程序拥抱了Spring框架 ,您将很高兴发现Spring提供了一个邮件抽象层。 如参考文档所述,“ Spring框架提供了一个有用的实用程序库,用于发送电子邮件,该电子邮件使用户免受底层邮件系统的限制,并负责代表客户端进行低级资源处理。” 太好了,现在让我们看看如何利用这个库。

首先,创建一个名为“ SpringMailProject”的新Eclipse项目。 在项目的类路径中,确保包括以下库(请注意,使用的是3.0.2.RELEASE Spring版本):

  • mail.jar(JavaMail的核心类)
  • org.springframework.asm-3.0.2.RELEASE.jar
  • org.springframework.beans-3.0.2.RELEASE.jar
  • org.springframework.context.support-3.0.2.RELEASE.jar
  • org.springframework.core-3.0.2.RELEASE.jar
  • org.springframework.expression-3.0.2.RELEASE.jar
  • com.springsource.org.apache.commons.logging-1.1.1.jar

注意1:需要Apache的commons-logging库,该库包含在classpath中
注意2:如果您使用的是Java 1.5或更早版本,则还需要Java激活框架。

我们将使用MailSender ,这是一个Spring接口,用于定义发送简单邮件的策略。 由于这只是一个接口,因此我们需要一个具体的实现,它以JavaMailSenderImpl的形式出现。 此类同时支持JavaMail MimeMessage和Spring SimpleMailMessage 。

我们将创建一个简单的Spring服务,该服务将用于发送邮件。 一种方法将在现场创建SimpleMailMessage ,而另一种方法将使用预配置的默认消息。 该服务的源代码如下:

package com.javacodegeeks.spring.mail;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Service;@Service("mailService")
public class MailService {@Autowiredprivate MailSender mailSender;@Autowiredprivate SimpleMailMessage alertMailMessage;public void sendMail(String from, String to, String subject, String body) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(body);mailSender.send(message);}public void sendAlertMail(String alert) {SimpleMailMessage mailMessage = new SimpleMailMessage(alertMailMessage);mailMessage.setText(alert);mailSender.send(mailMessage);}}

该类只是一个POJO,其服务名称为“ mailService”,由构造型Service批注标记。 使用的bean接线策略是自动装配的一种,因此使用了Autowired注释。 注意,可以使用bean的名称和类型来执行自动装配。

引导容器的相应Spring XML文件如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xmlns:jee="http://www.springframework.org/schema/jee" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"
><context:component-scan base-package="com.javacodegeeks.spring.mail" />    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="smtp.gmail.com"/><property name="port" value="25"/><property name="username" value="myusername@gmail.com"/><property name="password" value="mypassword"/><property name="javaMailProperties"><props><!-- Use SMTP transport protocol --><prop key="mail.transport.protocol">smtp</prop><!-- Use SMTP-AUTH to authenticate to SMTP server --><prop key="mail.smtp.auth">true</prop><!-- Use TLS to encrypt communication with SMTP server --><prop key="mail.smtp.starttls.enable">true</prop><prop key="mail.debug">true</prop></props></property></bean><bean id="alertMailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from">            <value>myusername@gmail.com</value></property><property name="to">            <value>myusername@gmail.com</value></property><property name="subject" value="Alert - Exception occurred. Please investigate"/></bean></beans>

这是一个非常简单的Spring配置文件。 不过,有些事情要提:

  • 声明将从其开始上下文扫描的基本软件包,并将其设置为“ com.javacodegeeks.spring.mail”。
  • 声明了“ mailSender” bean,并适当设置了其一堆属性(使用您自己的SMTP服务器配置属性和凭据)。
  • “ alertMailMessage”是预先配置的Spring SimpleMailMessage,将使用“按名称自动装配”将其注入“ MailService”类中。

如果您希望使用Gmail的SMTP服务器,请确保正确配置了以下JavaMail属性:

host=smtp.gmail.com
port=25
username=your-gmail-username
password=your-gmail-password
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true

在开发阶段,如果希望邮件客户端生成信息日志,请将“ mail.debug”设置为true。 但是,请记住在生产时将其设置为false,因为日志量可能会降低应用程序的性能和/或填充硬盘。

最后,我们创建一个类,该类将用于创建Spring容器并测试我们创建的简单邮件服务。 源代码如下:

package com.javacodegeeks.spring.mail;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;public class MailServiceTest {public static void main(String[] args) {ApplicationContext context = new FileSystemXmlApplicationContext("conf/spring.xml");MailService mailService = (MailService) context.getBean("mailService");mailService.sendMail("myusername@gmail.com", "myusername@gmail.com", "Testing123", "Testing only \n\n Hello Spring Email Sender");mailService.sendAlertMail("Exception occurred");}}

FileSystemXmlApplicationContext类用作ApplicationContext 。 我们在构造函数中传递Spring的XML文件位置,该类创建容器,实例化Bean并处理依赖项。 你不爱春天吗? 接下来,我们使用“ getBean ”方法检索“ MailService”服务的引用,并调用这两个方法。

就这样。 与往常一样,您可以从此处下载完整的Eclipse项目。

相关文章 :
  • 依赖注入–手动方式
  • 使用Spring Security保护GWT应用程序的安全
  • 具有Spring和Maven教程的JAX–WS
  • 建立自己的GWT Spring Maven原型
  • 使用Spring AspectJ和Maven进行面向方面的编程
  • Spring 3 RESTful Web服务
  • JBoss 4.2.x Spring 3 JPA Hibernate教程

翻译自: https://www.javacodegeeks.com/2010/07/java-mail-spring-gmail-smtp.html

spring smtp

spring smtp_使用Spring使用Java发送电子邮件– GMail SMTP服务器示例相关推荐

  1. 使用Spring使用Java发送电子邮件– GMail SMTP服务器示例

    对于使用Java发送电子邮件, JavaMail API是标准解决方案. 如官方网页所述," JavaMail API提供了独立于平台和协议的框架来构建邮件和消息传递应用程序". ...

  2. java gmail smtp_通过JAVA中的Gmail SMTP服务器发送电子邮件

    在这里,我进行了一些更改,这些更改对我来说很好: Session session = Session.getInstance(props,null); 您可以像实例化那样实例化消息对象.最后: Tra ...

  3. Spring通过Gmail SMTP服务器MailSender发送电子邮件

    Spring提供了一个有用的"org.springframework.mail.javamail.JavaMailSenderImpl"类,通过JavaMail API 简化邮件发 ...

  4. Java发送电子邮件(使用mail.jar和activation.jar)

    本文参考使用技术Java+JSP+Servlet 本次源代码可在本人网盘下载:http://pan.baidu.com/s/1jIdV7r4 循序渐进介绍如何使用Java发送电子邮件 一.J2EE+前 ...

  5. smtp gmail_如何使用Gmail SMTP服务器在WordPress中发送电子邮件

    smtp gmail Are you having trouble sending emails from your WordPress site? 您是否无法从WordPress网站发送电子邮件? ...

  6. MailBee.NET Objects发送电子邮件(SMTP)教程五:发送带有嵌入图片的网页和HTML邮件

    MailBee.NET Objects介绍和试用点击查看>>> 为了发送带有嵌入对象的电子邮件,开发人员应该使用SMTP object.首先,开发人员应该按照[MailBee.NET ...

  7. php发送gmail,使用GMail SMTP服务器从PHP页面发送电子邮件

    我试图通过Gmail的SMTP服务器从一个PHP页面发送电子邮件,但是我得到了这个错误: 身份验证失败[SMTP:SMTP服务器不支持身份验证(代码:250,响应:mx.google.com at y ...

  8. java gmail smtp_使用Javamail连接到Gmail smtp服务器会忽略指定的端口,并尝试使用25...

    我正在尝试在groovy脚本中使用javamail通过gmail发送电子邮件.我在网上看了很多地方,到目前为止还无法正常工作.运行脚本时出现的错误是: DEBUG SMTP: useEhlo true ...

  9. net core邮件服务器,C#发送电子邮件(SMTP)及outlook.com账号之概要

    这是关于c#发送电子邮件(SMTP)的技术笔记,以"简报"形式呈现. 因为最后成功通过outlook.com发送了邮件,所以,我觉得还是有必要 记录一下其中的要点. 一.技术核心 ...

最新文章

  1. 高数第七版_习题解答_3-2 考研题提示及答案
  2. Mybatis 使用的 9 种设计模式,真是太有用了~
  3. 进军中国软件,踏上寻找自我价值之路的菜鸟
  4. Android App性能測试
  5. uboot主Makefile之9——2589行 x210_sd_config目标
  6. 新一代Spring Web框架WebFlux!
  7. 基础总结篇之八:创建及调用自己的ContentProvider
  8. 跟我从零开始学python之一_从零开始学 Python 之运算符
  9. appinventor如何做个游戏_单亮:游戏的重要性
  10. 单片机定时报警C语言程序,单片机控制的简易定时报警器电路设计( - 控制/MCU - 电子发烧友网...
  11. 点云距离度量——EMD距离
  12. php写猴子搬香蕉问题,世界500强企业面试题:猴子吃香蕉
  13. 内外兼修的移动办公伴侣:联想YOGA S730评测体验
  14. 合天网安实验室CTF-基础100-Flag就在这儿
  15. 锁相放大器在中微流控的应用
  16. 2021最新版IDEA安装(最新版可和谐)
  17. golang的开源游戏服务器框架
  18. 怎么在mysql数据库中放图片_如何将图片储存在MySQL数据库中
  19. Ceph分布式文件系统及服务器远程存储的部署
  20. 从给定的大图中切出指定矩形区域的小图

热门文章

  1. springboot点击运行没反应,什么都不显示的解决方式
  2. 第7步 mybatis-generator dao层生成器
  3. dismiss的词组_法律英语常用词必记:Dismiss
  4. 独家:这也许是最具珍藏价值的Oracle DBA生存宝典!
  5. HDU1576(欧几里得算法)
  6. jax-rs jax-ws_信守承诺:针对JAX-RS API的基于合同的测试
  7. junit5和junit4_JUnit 5 –条件
  8. 归约操作java8_使用Java 8进行分组,转换和归约
  9. concurrency_Java Concurrency Essentials教程
  10. jvm 架构_不可变的基础架构,热部署和JVM