天天看點

使用郵箱找回密碼 springmvc

因項目需求,需要郵箱找回密碼功能,正好springmvc中有個JavaMailSenderImpl類,使用它來完成此功能

1、導入所需jar包

mail.jar  和  spring-context-support-4.0.0.jar

2、在配置檔案中配置JavaMailSenderImpl類的bean

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
<property name="host" value="smtp.qq.com"></property>  
<property name="port" value="25"></property>
<property name="username" value="[email protected]"></property>  
<property name="password" value="******"></property>  

<property name="javaMailProperties">  
   <props>  
       <prop key="mail.smtp.auth">true</prop>  
       <prop key="mail.smtp.from">[email protected]</prop>
       <prop key="mail.smtp.socketFactory.fallback">false</prop> 
       <prop key="mail.smtp.starttls.enable">true</prop> 
       <!-- <prop key="mail.debug">true</prop> -->
   </props>  
</property>  
</bean> 
           

3、注入bean

在需要處理發送郵件的類中使用

@Resource
private JavaMailSenderImpl mailSender;
           

注入發送郵件的bean

主要代碼如下:

MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
//設定發件人/收件人資訊
helper.setFrom(mailSender.getUsername());
helper.setTo([email protected]);
helper.setSubject("密碼重置");
helper.setText("重置密碼郵件", true);
mailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
           

大緻就需要以上幾步,具體的郵件url的生成規則以及url的驗證等等,在這裡就不細說了,網上也有很多,

個人也可以根據自己項目的特點和需要,自定義url生成規則

下面說下,編碼過程遇到的一些問題:

1、本人使用的是qq郵件作為發送方測試的,需要手動開啟服務

在郵箱的設定--賬戶--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務中需要手動開啟POP3/SMTP服務

此外,配置檔案中的password使用的是授權碼,在開啟服務的時候會生成

2、還有一個問題就是授權的問題,這個問題花了些時間,開始的時候報授權失敗錯誤,網上查閱,才解決

需要在第二步的配置檔案中添加<prop key="mail.smtp.starttls.enable">true</prop> 

3、配置檔案中的密碼,配置的是授權碼,用于第三方用戶端登入,授權碼開啟服務時生成或設定

由于本人隻測試了qq郵箱作為發送方,是以還有很多問題未涉及,希望大家有好的想法或遇到了問題,都可以随時讨論、學習

讓我們一起遨遊在代碼的海洋裡!

繼續閱讀