Springbootにメール送信機能を実装する方法

PHPz
リリース: 2023-05-13 10:10:06
転載
1507 人が閲覧しました

電子メールの送信は非常に一般的な機能であり、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. 新しい springboot プロジェクトを作成します。

1. アイデアを開き、左上隅のツールバーのファイル ボタンをクリックして、新しいブート プロジェクトを作成します

Springbootにメール送信機能を実装する方法

2. [次へ] をクリックして、デフォルトの依存関係を選択します (共通) データベース接続、Web などがあります。

Springbootにメール送信機能を実装する方法

3. [完了] をクリックし、ブート プロジェクト ディレクトリが生成されるまで待ちます。この時点のディレクトリは不完全なので、java フォルダーとリソース フォルダーを自分で追加する必要があります。プロジェクトを右クリックし、

Springbootにメール送信機能を実装する方法

を選択して追加します。

Springbootにメール送信機能を実装する方法

4. 次に、pom ファイルを開いて依存関係を導入します。

5. 設定ファイルを開き、対応するパラメータを書き込みます。

Springbootにメール送信機能を実装する方法

プロジェクトが完了したら、テスト クラスの作成を開始します。

2. メール送信

1. utilクラスを作成し、送信ロジックを実装したビジネスクラスを記述する メール送信時のフォーマットを実装したいため、ツールクラスを記述する必要はありません添付ファイル付きの電子メール、HTML スタイル、および非同期操作電子メールの送信、特に非同期の送信には時間がかかることは誰もが知っています。

Springbootにメール送信機能を実装する方法

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にメール送信機能を実装する方法

以上がSpringbootにメール送信機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート