前面一直用javamail来发送,对比spring会显得臃肿复杂,利用spring只需简单的配置就可以实现发邮件的功能。
首先必须导入所必须的包activation.jar,commons-logging.jar,mail.jar,spring.jar
新建一个applicationContext .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:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host">
<value>127.0.0.1</value><!-- 本地服务器 如果是其他,请填如:smtp.sohu.com-->
</property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
<property name="username">
<value>postmaster@mai.com</value> <!-- 我这里用本地的邮箱名-->
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
</beans>
然后建立一个java文件
package org.fantlam.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
public class SpringMail1 {
public static void main(String args[]){
ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender");
SimpleMailMessage mail = new SimpleMailMessage();
//这里SimpleMailMessage只能用来发送text格式的邮件
try {
mail.setTo("fantlam@163.com");//接收者
mail.setFrom("sohu@mai.com");//按前面讲的,可以随便起
mail.setSubject("spring mail test!");//主题
mail.setText("springMail的简单发送测试");//邮件内容
sender.send(mail);
} catch (Exception e) {
e.printStackTrace();
}
}
}
这代码本身是没错的,一开始用了网易的老邮箱发送,它老给我报错
org.springframework.mail.MailSendException; nested exception details (1) are:
Failed message 1: com.sun.mail.smtp.SMTPSendFailedException: 553 You are not authorized to send mail, authentication is required
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:382)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:291)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:277)
at org.fantlam.spring.SpringMail1.main(SpringMail1.java:20)
然后我试了一个新邮箱,报错又不一样。
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:395)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:291)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:277)
at org.fantlam.spring.SpringMail1.main(SpringMail1.java:20)
Caused by: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:373)
... 3 more
不过这并不是代码本身的错误,是邮箱验证那些东西,后来我用了本地的服务器就可以成功发送了,这就是用spring发送的简单邮件,不用解释什么,一看就明白了。
分享到:
相关推荐
本教程“张孝祥Java邮件开发详解”深入探讨了如何使用Java来实现邮件的发送功能,涵盖了从基础概念到高级特性的全方位讲解。 首先,Java Mail API是Java中用于处理邮件的核心库,它提供了丰富的类和接口,使得...
Java发送邮件是软件开发中常见的功能,Spring框架提供了一种优雅的方式来实现这一需求。Spring框架以其模块化和灵活性而著名,它包含了一个名为`JavaMailSender`的接口,专门用于处理电子邮件的发送。在这个场景中,...
`java邮件系统`和`java邮件收发`则涉及到更广泛的邮件处理概念,包括不仅限于发送,还可能包括接收和解析邮件。 综上所述,Java结合Spring框架发送邮件是一个实用且功能强大的解决方案,通过合理的配置和编程,可以...
在Java开发中,Spring框架提供了一种方便的方式来发送电子邮件,这就是SpringMail模块。SpringMail使得在应用程序中集成邮件服务变得更加简单,它支持多种功能,包括发送带有多个附件、多接收者(包括抄送和暗送)的...
在本课程中,传智播客的张孝祥讲师将深入讲解Java邮件开发的相关技术,包括使用JavaMail API和其他相关库来实现邮件功能。 JavaMail API是Java平台上的一个标准API,它提供了邮件处理的各种接口和类,包括创建、...
总的来说,"Java邮件系统-javaweb项目"是一个涵盖了Java Web开发全栈的实践案例,涉及了服务器端编程、前端页面开发、数据库操作、邮件处理和安全控制等多个方面。无论是对于初学者还是经验丰富的开发者,都能从中...
总之,Java邮件开发主要涉及到JavaMail API的使用,通过配置Session,创建并填充Message,最后通过Transport发送邮件。这个过程可以扩展到处理各种邮件格式和复杂场景,是Java开发中不可或缺的一部分。
【Spring进阶—如何用Java代码实现邮件发送】 在现代软件开发中,特别是在企业级应用中,邮件发送是一项常见的功能,比如在进销存系统中发送库存预警通知,或者在招聘网站上验证用户注册时的电子邮件地址。这些场景...
本教程将深入探讨如何利用Spring框架的邮件服务模块来实现Java邮件发送功能,包括发送多附件、多人发送、抄送和暗送。 首先,`SpringMailUtil.java`这个文件很可能是邮件服务的核心工具类,它封装了邮件发送的相关...
在这个"基于Java Spring邮件群发的demo"中,我们将探讨如何利用Spring框架的邮件服务模块实现高效的邮件群发功能。同时,这个项目还涉及到了MySQL数据库和MyBatis持久层框架,这三者共同构成了一个完整的数据驱动的...
通过研究和理解这个Java邮件开发源代码,开发者不仅可以学习到如何使用JavaMail API发送和接收邮件,还能掌握SSM框架的实践应用,这对于进行企业级的课程设计或毕业设计项目非常有帮助。同时,这也是提升Java Web...
Java Spring 框架是企业级应用开发的强大工具,它提供了丰富的功能,包括但不限于依赖注入、AOP(面向切面编程)、数据访问、Web 应用支持等。在本项目中,我们将关注Spring如何实现“无敌邮件发送”功能。邮件服务...
这里提到的两个jar包——`spring-context-support-4.1.7.RELEASE.jar`和`mail-1.4.1.jar`,都是Java邮件发送的重要组成部分。 `spring-context-support-4.1.7.RELEASE.jar`是Spring框架的一个扩展模块,主要提供了...
在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括但不限于依赖注入、面向切面编程以及各种实用工具。其中,Spring的JavaMailSenderImpl是用于发送电子邮件的一个重要工具,它使得开发者...
这可能涉及Java Swing或JavaFX库来构建图形界面,或者使用Spring Boot和Thymeleaf等技术开发Web应用。 8. 性能优化:使用Java的缓存机制(如Guava Cache)可以缓存频繁访问的数据,减少不必要的网络请求。此外,...
【标题】:自己开发的JAVA Web Email邮件系统 在IT领域,开发一个JAVA Web Email邮件系统是一项具有挑战性的任务,它涉及到多个技术栈的整合,包括JAVA编程、Web开发、邮件处理协议以及服务器配置等。这个系统允许...
"Java邮件开发(4)_邮件开发中问题汇总"这篇文章主要探讨了在Web应用中集成邮件发送功能时可能遇到的问题以及解决策略。这里我们将深入讲解相关知识点。 首先,Java Mail API是Java平台上的标准邮件接口,用于处理...
标题 "Spring 使用163发邮件带附件" 涉及到的是在Java开发中,使用Spring框架发送电子邮件,特别是包含附件的邮件。这通常在系统需要自动化通知、报告发送或者用户验证过程中非常常见。Spring提供了JavaMailSender...
项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件(文本格式的邮件、发送HTML格式的邮件、发送带附件 的邮件、...
Java发送邮件是常见的系统集成需求,它涉及到网络通信、邮件协议和编程技术。在这个主题中,我们将探讨两种方法:一种是通过Spring Cloud实现,另一种是使用静态方法直接调用JavaMail API。这两种方法都有其独特的...