QQ邮件
当我们进行注册或是密码找回,等某种情景的时候,可以通过邮箱发送验证码,进确认账号等操作。
SMTP是一种有效且可靠的简单邮件传输协议,主要用于传输系统之间的邮件信息的传送。邮件发送协议。
163邮箱 : smtp.163.com qq邮箱:smtp.qq.com
POP3是TCP/IP协议中的一员,主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。邮件接收协议。
需要导入的jar包
1 <!--上下文支持包:支持以后Spring的邮件发送,定时器,模板--> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-context-support</artifactId> 5 <version>${org.springframework.version}</version> 6 </dependency>
1 <!-- 邮件支持 --> 2 <dependency> 3 <groupId>javax.mail</groupId> 4 <artifactId>mail</artifactId> 5 <version>1.4.1</version> 6 </dependency>
获取QQ邮箱授权码
登录QQ邮箱---->邮箱设置----->账户-----最下方有个------->生成授权码
XML配置
1 <!--多个邮件可以配置不同的id注入--> 2 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 3 <!-- 163邮箱,smtp.163.com --> 4 <!-- admin@163.com 用户名:admin 密码:xxx --> 5 <!-- smtp邮件发送协议 --> 6 <!-- pop3收邮件协议 --> 7 <property name="host" value="smtp.qq.com" /> 8 <!--管理员邮箱--> 9 <property name="username" value="xxxx@qq.com" /> 10 <!--授权码--> 11 <property name="password" value="xxxx" /> 12 <property name="javaMailProperties"> 13 <props> 14 <!-- 必须进行授权认证,它的目的就是阻止他人任意乱发邮件 --> 15 <prop key="mail.smtp.auth">true</prop> 16 <!-- SMTP加密方式:连接到一个TLS保护连接 --> 17 <prop key="mail.smtp.starttls.enable">true</prop> 18 </props> 19 </property> 20 </bean>
JAVA代码
1 @Autowired 2 MailSender mailSender;//XML中的id 3 @Test 4 public void testName() throws Exception { 5 //JavaMailSenderImpl xxx = (JavaMailSenderImpl)mailSender 6 // 简单邮件对象 7 SimpleMailMessage msg = new SimpleMailMessage(); 8 // 发送人:和配置一致 9 msg.setFrom("xxxx@qq.com"); 10 // 收件人 11 msg.setTo("xxxx@qq.com"); 12 // 主题 13 msg.setSubject("主题"); 14 // 内容 15 msg.setText("内容"); 16 // 设置固定回邮地址 17 msg.setReplyTo("xxxx@xxx.com"); 18 // 发送 19 mailSender.send(msg);
定时器
除了spring-context-support导入的jar包
1 <!-- 定时调度 --> 2 <dependency> 3 <groupId>quartz</groupId> 4 <artifactId>quartz</artifactId> 5 <version>1.5.2</version> 6 </dependency>
XML配置
cron表达式 详见百度
1 <task:scheduled-tasks> 2 <!-- 执行quartzJob里面的work方法,执行频率是cron表达式 --> 3 <!--每过一分钟去执行一个名称为quartzJob的bean,里面的work方法 4 0/1 * * * * ? 5 --> 6 <task:scheduled ref="rtquazJob" method="work" cron="0/1 * * * * ?" /> 7 </task:scheduled-tasks>