電子メールの送信は非常に一般的な機能であり、Java での実装には JavaMailSender インターフェイスが必要です。 springboot プロジェクトでは spring-boot-starter-mail という依存関係を導入する必要がありますが、メールの形式に要件がある場合は、html ファイルを操作できる spring-boot-starter-thymeleaf の依存関係を導入できます。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
他の自動構成モジュールと同様に、依存関係の導入を完了した後、application.properties
で対応するプロパティ値を構成する必要があります。そうしないと、実行中のメソッドが常に null ポインターを報告します。 。
1. アイデアを開き、左上隅のツールバーのファイル ボタンをクリックして、新しいブート プロジェクトを作成します
2. [次へ] をクリックして、デフォルトの依存関係を選択します (共通) データベース接続、Web などがあります。
3. [完了] をクリックし、ブート プロジェクト ディレクトリが生成されるまで待ちます。この時点のディレクトリは不完全なので、java フォルダーとリソース フォルダーを自分で追加する必要があります。プロジェクトを右クリックし、
を選択して追加します。
4. 次に、pom ファイルを開いて依存関係を導入します。
5. 設定ファイルを開き、対応するパラメータを書き込みます。
プロジェクトが完了したら、テスト クラスの作成を開始します。
1. utilクラスを作成し、送信ロジックを実装したビジネスクラスを記述する メール送信時のフォーマットを実装したいため、ツールクラスを記述する必要はありません添付ファイル付きの電子メール、HTML スタイル、および非同期操作電子メールの送信、特に非同期の送信には時間がかかることは誰もが知っています。
2. 非同期呼び出しを記述する方法を追加します:
*非同期メソッドが必要な場合は @Async を追加します
*非同期を有効にする必要がありますスタートアップ クラス Method, @EnableAsync
*aop プロキシが原因である可能性があることに注意してください。呼び出されたメソッドと呼び出しコードが同じクラスにある場合、それはこのクラス呼び出しと同等であり、プロキシ クラスは存在しません。使用されるため、@Async 効果はありません。ツールクラスにあります。
3. コード: 添付ファイル付きメール
@Test public void sendAttachmentsMail() { Context context = new Context(); context.setVariable("agencyName", "11"); context.setVariable("busTypeName", "22"); context.setVariable("busAllowance", 33); String emailContent = templateEngine.process("emailTeplate", context); try { emailService.sendAttachmentsMail(new String[]{"xxx.com"}, "测试提示", emailContent); } catch (Exception e) { e.printStackTrace(); } System.out.println("send mail success!,please wait a few mintens"); }
/** * fujian * @throws Exception */ @Async public void sendAttachmentsMail(String[] to, String subject, String contnet) throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("xxx.com"); helper.setTo(to); helper.setSubject(subject); helper.setText(contnet,true); Path picturePath = Paths.get("E:WorkFiles estBill", "test.png"); byte[] bytes = Files.readAllBytes(picturePath); helper.addAttachment("附件-1.jpg", picturePath.toFile()); mailSender.send(mimeMessage); }
メールは正常に送信されました
以上がSpringbootにメール送信機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。