ssm实现发送邮件功能
SSM实现发送邮件
- 项目需求
- 前期工作
- 配置文件及代码
- 项目部署
项目需求
用户注册时输入自己的邮箱地址(这里以QQ邮箱为例),用户提交订单,管理员操作订单,订单审核通过时给用户发送邮件提醒用户,审核成功请尽快付款。
前期工作
导入发送邮件功能相关jar包
配置邮件服务器信息
先在邮箱中设置开启smtp和pop3服务然后拿到授权码:
以QQ邮箱服务为例
设置->账户
配置文件及代码
- 写mail.properties配置文件
#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com #若无法识别可以写IP地址58.251.106.181,此处可能会用在部署到云服务器运行时设置
mail.smtp.username=**********@qq.com
#密码/客户端授权码
mail.smtp.password=*********** #刚刚得到的授权码
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000
- 配置spring-mybatis.xml。在配置文件中导入properties文件的属性:
<!--邮件配置-->
<context:property-placeholder location="classpath:config/mail.properties" ignore-unresolvable="true"/>
其中ignore-unresolvable="true"属性是配置文件中存在多个property-placeholder时出现解析不了的占位符进行忽略掉。这里我们不设置,因为一旦设置mail.properties中的占位符就无法解析,会被忽略掉。
比如
接着在spring-mybatis.xml中配置一个bean
<!--配置邮件接口-->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.smtp.host}"/><property name="username" value="${mail.smtp.username}"/><property name="password" value="${mail.smtp.password}"/><property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/><property name="javaMailProperties"><props><prop key="mail.smtp.auth">${mail.smtp.auth}</prop><prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop></props></property>
</bean>
- Controller测试
@Autowiredprivate JavaMailSender javaMailSender;//在spring中配置的邮件发送的beanMimeMessage mMessage=javaMailSender.createMimeMessage();//创建邮件对象MimeMessageHelper mMessageHelper;Properties prop = new Properties();String from;try {//从配置文件中拿到发件人邮箱地址prop.load(this.getClass().getResourceAsStream("/db.properties"));from = prop.get("mail.smtp.username")+"";mMessageHelper=new MimeMessageHelper(mMessage,true);mMessageHelper.setFrom(from);//发件人邮箱mMessageHelper.setTo(email);//收件人邮箱mMessageHelper.setSubject("药店通知");//邮件的主题mMessageHelper.setText("<p>您的处方订单已经通过审核,请及时前往付款</p><br/>" +"<a href='http://49.233.250.224:8080/yaodian/login/'>登录网上药店</a><br/>"/* + "<img src='cid:fengye'>"*/,true);//邮件的文本内容,true表示文本以html格式打开javaMailSender.send(mMessage);//发送邮件} catch (MessagingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
本地测试输入url,成功收到邮件!
项目部署
当项目部署到云服务器上运行时会出现运行超时的错误
!!!!因为发送邮件的服务默认的是使用25端口,但是不管是阿里云还是腾讯云都把25端口禁用了原因是怕邮件泛滥
所以我特地去我的腾讯云找到25端口解封,但是还是有类似的信息提示
阿里云也是类似的
或者使用SSL协议发送邮件,使用服务器会使用465端口来发送邮件,而不是被阿里云服务器禁用的25端口。
不用SSL协议的话,一般解开25端口就可以使用
如果还不行可能是因为Linux无法解析域名
将我们的服务器主机名写成IP地址的形式
#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com #若无法识别可以写IP地址58.251.106.181,此处可能会用在部署到云服务器运行时设置
这样发送邮件的功能就已经能够成功实现了
ssm实现发送邮件功能相关推荐
- SSM整合框架实现发送邮件功能
SSM整合框架实现发送邮件功能 1.导入发送邮件的依赖 <!-- 发送邮件jar包--><!--spring支持--><dependency><groupId ...
- Python django实现简单的邮件系统发送邮件功能
Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...
- Selenium3自动化测试——23.自动发送邮件功能
自动发送邮件是自动化测试项目的重要需求之一.发送邮件的协议,是简单邮件传输协议(SMTP). 1. Python自带的发送邮件功能 1.1 发送邮件正文 import smtplib from ema ...
- python定时发送邮件_Python3实现带附件的定时发送邮件功能
本文实例为大家分享了Python3定时发送邮件功能的具体代码,供大家参考,具体内容如下 1. 导入模块 import os import datetime #定时发送,以及日期 import shut ...
- C#使用 System.Net.Mail发送邮件功能
C#使用 System.Net.Mail发送邮件功能 .NET 里包含了很多很丰富的邮件发送与接受的API在 System.Net.Mail命名空间里,使得我们开发发送和接受邮件相关功能变得简单,下面 ...
- python 发送邮件connect none_Python发送邮件功能示例【使用QQ邮箱】
本文实例讲述了Python发送邮件功能.分享给大家供大家参考,具体如下: 这里以QQ邮箱为例说明 登录邮箱点账号 开启smtp 开启时会要求你发送一条短信,发送完成后点已发送. 就有授权码了 代码如下 ...
- python自动登录qq邮箱_selenium+python实现自动登陆QQ邮箱并发送邮件功能
本期做一个selenium详细实例,会把我在元素定位中遇到的一些阻塞和经验分享给大家. (浏览器为Chrome) (如果只需要最终的完整代码,请直接跳转到文章最后) 浏览器打开QQ邮箱登录网址 fro ...
- Python使用yagmail库实现发送邮件功能
yagmail库的安装 pip install yagmail yagmail的使用: ''' @brief:自动发送邮件功能:用来通知以及debug ''' import yagmailyag = ...
- php mail laravel,Laravel框架实现的使用smtp发送邮件功能示例
本文实例讲述了Laravel框架实现的使用smtp发送邮件功能.分享给大家供大家参考,具体如下: 1..env文件中配置 MAIL_DRIVER=smtp MAIL_HOST=smtp.邮箱后缀 MA ...
最新文章
- 宇通客车java_6米采血车
- python 2/3 joblib.dump() 和 joblib.load()
- 3dmax全局材质灯光细分插件_3Dmax渲染Vray渲染提速优化技巧
- 微信小程序实现图片是上传、预览功能
- 中国WEB 2.0的质变过程
- Python常见的内置函数
- 笔记-项目配置管理-创建基线或发行基线的主要步骤
- shell脚本_Shell脚本
- win2003服务器 虚拟主机安全配置
- Python基础1(2017-07-16)
- php7对redis的扩展及redis主从搭建
- python雷达信号处理,信号处理之功率谱原理与python实现
- tv盒子管理助手android版本,TV盒子工具 管理电视盒子的好助手
- CAD梦想画图中“插入图片”
- 对代码签名另一种认识(下)
- 移动硬盘提示数据错误循环冗余检查要怎么办啊
- Python——用面相对象写奥特曼大战小怪兽
- android 输入法 悬浮窗口,Android EditText悬浮在输入法之上
- 计算机奖项含金量排名,大家一起拍下NBA常规赛各项奖项含金量排名,都是个人观点,讨论讨论...
- javacv从入门到精通——第三章:基本使用