回答編集履歴

2

ローカルSMTPサンプル追記

2022/11/25 04:45

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -6,3 +6,32 @@
6
6
  ~~ただ、このライブラリはgmail対応なのでgmailサービスが設置しているSMTPサーバーを利用することができます。~~ <- すいません勘違い
7
7
  まずはSMTPサーバーを確保しましょう。(ローカルに立てるか、クラウドにSMTPサーバーを立てるか、SMTPサーバーをレンタルするか)
8
8
 
9
+ ## ローカルに立てる場合
10
+ 以下のコードでシンプルなSMTPサーバーを立てることができます。
11
+ ```go
12
+ package main
13
+
14
+ import (
15
+ "bytes"
16
+ "log"
17
+ "net"
18
+ "net/mail"
19
+
20
+ "github.com/mhale/smtpd"
21
+ )
22
+
23
+ func mailHandler(origin net.Addr, from string, to []string, data []byte) error {
24
+ msg, _ := mail.ReadMessage(bytes.NewReader(data))
25
+ subject := msg.Header.Get("Subject")
26
+ log.Printf("Received mail from %s for %s with subject %s", from, to[0], subject)
27
+ return nil
28
+ }
29
+
30
+ func main() {
31
+ smtpd.ListenAndServe("127.0.0.1:2525", mailHandler, "MyServerApp", "")
32
+ }
33
+ ```
34
+ これはメール送信を検知してそれを表示するだけのSMTPサーバーです。
35
+ さらに外部のSMTPサーバーに中継する機能はありません。
36
+ (これだと外部ドメインに実際にメールを送ることはできません。)
37
+

1

勘違いがあったので訂正

2022/11/25 04:39

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -3,6 +3,6 @@
3
3
  「localhost:25」を指定してメールが送れるためには、
4
4
  「localhost:25」にSMTPサーバーつまり「手元のPC上にてSMTPサーバーを起動する」必要があります。
5
5
 
6
- ただ、このライブラリはgmail対応なのでgmailサービスが設置しているSMTPサーバーを利用することができます。
6
+ ~~ただ、このライブラリはgmail対応なのでgmailサービスが設置しているSMTPサーバーを利用することができます。~~ <- すいません勘違い
7
- まずはSMTPサーバーを決めましょう。ローカルに立てます?それともGoogleのSMTPサーバーを利用しますか
7
+ まずはSMTPサーバーを確保しましょう。ローカルに立て、クラウドにSMTPサーバーを立てるか、SMTPサーバーをレンタル
8
8