詳細については、私のブログにアクセスしてください。Springbootは、アプレットにメール確認コードを送信する機能を実装しています
Springbootはアプレットの電子メール検証を実装します
1.構成アイテム
- pomファイルを設定し、メール送信への依存関係を導入する
pomファイルに追加します。
<!--邮件发送核心包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 設定ファイルapplication.ymlを変更します。ここでは例としてQQメールボックスを取り上げます
ここではymlメソッドを使用していますが、もちろんpropertiesメソッドを使用して
#邮件发送配置
spring:
mail:
default-encoding: UTF-8
host: smtp.qq.com
username: 你的邮箱
password: 邮箱授权码
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
電子メール認証コードは次のように取得できます。
QQメールボックスページを開く→設定→アカウント→POP3 / IMAP / SMTP / Exchange / CardDAV / CalDAVサービス→POP3 / SMTPサービスをオンにすると、認証コードが表示されます
[外部チェーン画像の転送に失敗しました。ソースサイトに盗難防止チェーンメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-k05s3Fon-1578461968057)(https://i.loli.net/2019/03/16/5c8c8a7252fef.png )]
次に、mailServiceとmailServiceImplを記述します
メールサービス層とメールサービスインターフェース実装層
$ {spring.mail.username}はymlで設定されたプロパティです。ここにメソッドがあります。1つ目は通常のメールを送信すること、2つ目は添付ファイル付きのメールを送信することです。
- メールサービスレイヤー(IMailService)
public interface IMailService {
//发送普通邮件
void sendSimpleMail(String to,String title,String content);
//发送带有附件的邮件
void sendAttachmentsMail(String to, String title, String content, List<File> fileList);
}
- メールサービスインターフェース実装レイヤー(MailServiceImpl)
@Service
public class MailServiceImpl implements IMailService {
@Value("${spring.mail.username}")
private String from;
@Resource
private JavaMailSender mailSender;
Logger logger = LoggerFactory.getLogger(this.getClass());
//发送普通邮件
@Override
public void sendSimpleMail(String to, String title, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(title);
message.setText(content);
mailSender.send(message);
logger.info("邮件发送成功");
}
//发送带有附件的邮件
@Override
public void sendAttachmentsMail(String to, String title, String content, List<File> fileList) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(title);
helper.setText(content);
String fileName = null;
for (File file:fileList) {
fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B");
helper.addAttachment(fileName, file);
}
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
logger.info("邮件发送成功");
}
}
第三に、コントローラを記述します
メール制御層
//获取邮箱验证的验证码
@RequestMapping("/getCheckCode")
public JsonResult getCheckCode(HttpServletRequest request) {
//获取微信小程序get的参数值并打印
String userEmail = request.getParameter("userEmail");
user = userService.queryUserByUserEmail(userEmail);
if (null == user) {
return new JsonResult(JsonResponseStatus.EMPTY.getCode(), JsonResponseStatus.EMPTY.getMsg());
}else{
String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
String message = "您的注册验证码为:"+checkCode;
try {
mailService.sendSimpleMail(userEmail, "注册验证码", message);
}catch (Exception e){
return new JsonResult(JsonResponseStatus.EMPTY.getCode(), JsonResponseStatus.EMPTY.getMsg());
}
return new JsonResult(JsonResponseStatus.SUCCESS.getCode(), JsonResponseStatus.SUCCESS.getMsg(),checkCode);
}
}
Webページで使用できるコントロールレイヤーコードを添付します。
@Controller
public class MailController {
@Resource
private IMailService mailService;
@RequestMapping("getCheckCode")
@ResponseBody
public String getCheckCode(String email){
String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
String message = "您的注册验证码为:"+checkCode;
try {
mailService.sendSimpleMail(email, "注册验证码", message);
}catch (Exception e){
return "";
}
return checkCode;
}
}
4番目に、小さなプログラムのメール確認ページを作成します
<!--pages/getCheckCode/getCheckCode.wxml-->
<form bindsubmit="getCheckCode">
<view class="form-list">
<view class="form-item">
<view class="form-item-hd">邮箱</view>
<view class="form-item-bd">
<input type="email" name="userEmail" value="{{userEmail}}" placeholder="请输入邮箱" maxlength="25" />
</view>
</view>
</view>
<!--按钮-->
<button formType="submit" class="edit-btn">获取验证码</button>
</form>
<form bindsubmit="toPasswordReset">
<view class="form-list">
<view class="form-item">
<view class="form-item-hd">验证码</view>
<view class="form-item-bd">
<input type="text" name="checkCode" value="{{checkCode}}" placeholder="请输入验证码" maxlength="20" />
</view>
</view>
</view>
<button formType="submit" class="edit-btn">进行验证</button>
</form>
5、テスト
[外部チェーン画像の転送に失敗しました。ソースサイトに盗難防止チェーンメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-0JFwnvF6-1578461968058)(https://i.loli.net/2019/03/16/5c8cc99015151.png )]
[外部チェーンイメージの転送に失敗しました。ソースサイトに盗難防止チェーンメカニズムがある可能性があります。イメージを保存して直接アップロードすることをお勧めします(img-jFDlrDTs-1578461968059) )]
わかりました、ここで共有します。ご不明な点がございましたら、以下にコメントを残してください...