0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SpringBoot開発用に、ダミーのメールサーバーを立てる

Last updated at Posted at 2022-04-24

SpringBootでWebサービスを開発しています。
メール送信を実装したいのですが、メールサーバーはどうするのか迷いました。

Gmailとかでもいいですが、
Webサービスなのでいずれは独自のメールサーバーを立てたい。
しかし、そのやり方もまだよくわからない状態。
とりあえず、メール送信の機能を実装して単体テストだけでもしたい。

fakeSMTPを使ってダミーのメールサーバーを立てる

ということで調べていたらダミーのメールサーバーを立てるといいと。
ということで今回はfakeSTMPを使いました。
Javaで実装されているため、環境を選ばないのがポイントです。
下記からダウンロードします(macです)。

zipファイルがダウンロードされます。
解凍するとjarファイルが出てきます。 

fakeSMTP-x.xx.jar

これを任意の場所に配置し(今回は/path/to/fakeSMTP-x.xx.jar)、
jarファイルをダブルクリックするか、

java -jar /path/to/fakeSMTP-x.xx.jar 

で起動します。

「開発元が未確認で起動できない」と言われたら下記を参照。

起動すると、下記のような画面が表示されます。
スクリーンショット 2022-04-24 19.15.57.png

リスニングポートが「25」です。任意の番号に変更可です。
メッセージ保存先にフォルダを指定すると、送信したメッセージがそのフォルダに保管されます。

SpringBoot アプリケーションの実装

application.propertiesに下記を追記してください。

application.properties
#ホスト名(今回はローカルで起動します)
spring.mail.host=localhost
#ポート番号(リスニングポートを指定する)
spring.mail.port=25 

pom.xmlに依存関係を追加します。

pom.xml
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
MailService.java
@Service
public class MailService {
    @Autowired
	private JavaMailSender mailSender;

	public void sendMail() {
		SimpleMailMessage mailMessage = new SimpleMailMessage();
		mailMessage.setTo("宛先メールアドレス");
		mailMessage.setSubject("件名を入力します");
		mailMessage.setText("本文を入力します");

		mailSender.send(mailMessage);
	}
}

宛先メールアドレスは適当でもいい(aaaとかでもいい)ですが必ず何か入れてください。
実際にはどこにも送られません。

送信してみる

fakeSMTPの「サーバー起動」を押して、メールサーバーを起動します。
スクリーンショット 2022-04-24 19.15.57.png
Webサービスの開発サーバーを起動して、該当ロジックを流します。

メール送信に成功すると、
fakeSMTPの画面に
送信したメールの情報が表示されます。

スクリーンショット 2022-04-24 19.13.55.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?