質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

12744閲覧

SpringBootでメール送信

plue

総合スコア71

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2016/10/19 07:58

現在SpringBootを使用し、メール送信機能を作成しています。
http://ksby.hatenablog.com/entry/2015/04/22/022930#MAIL001MailBuilder.java
を参考に作成しているのですが、MailConnectExceptionが発生しうまくいかず、
調べているのですが原因が良く分かりません。
どなたか分かる方がいらっしゃいましたら、ご教示いただければと思います。
よろしくお願い致します。

■例外メッセージ

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Mail server connection failed; nested exception is com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.SocketException: Network is unreachable: connect. Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.SocketException: Network is unreachable: connect; message exceptions (1) are:
Failed message 1: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
nested exception is:
java.net.SocketException: Network is unreachable: connect] with root cause

現在のソースおよび設定状況は以下のとおりです。

■smtpサーバ
・smtp4devを使用。
・DomainName:localhost
・port :25
・ListenInterface:127.0.0.1

■application.properties

spring.mail.host= localhost spring.mail.port= 25

■pom.xml

xml

1 <!-- Spring boot Mail --> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-mail</artifactId> 5 </dependency>

■メール送信クラス

java

1 /** メール送信サービス */ 2 @Autowired 3 MailSender mailSender; 4 private void sendMail(ModalSaveForm form){ 5 6 SimpleMailMessage msg = new SimpleMailMessage(); 7 8 msg.setFrom("test@test.com"); 9 msg.setTo("test@test.com"); 10 msg.setSubject("テストメール");//タイトルの設定 11 msg.setText("Spring Boot より本文送信"); //本文の設定 12 13 mailSender.send(msg); 14 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私もsmtp4devを使っておりますので、念のため検証コードを作ってみたところ、特に問題なく送信したメールはsmtp4devが受け取りました。

考えられる原因としては以下の2ケースがあります

ひょっとすると localhost が解決できない状態ではないでしょうか。
Windowsであれば hosts ファイルに localhost と 127.0.0.1 のマッピングがない場合はこの現象が発生します。

C:\Windows\System32\drivers\etc\hosts

またはapplication.properties側で localhostを指定せず、127.0.0.1 を指定してください。

もしくはポート25の通信をパーソナルファイアウォール設定でブロックしてはいないでしょうか。
smtp4devの通信ポート番号を1024以降にする、例えば2500にして、メール送信側も2500を指定してください。

投稿2016/10/19 23:44

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

plue

2016/10/20 02:54

回答ありがとうございます。 ホストおよびポートの対応をしたところ、無事に受信できるようになりました!
A-pZ

2016/10/20 03:17

d(・ω・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問