回答編集履歴
2
ローカルSMTPサンプル追記
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
勘違いがあったので訂正
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サーバーを
|
7
|
+
まずはSMTPサーバーを確保しましょう。(ローカルに立てるか、クラウドにSMTPサーバーを立てるか、SMTPサーバーをレンタルするか)
|
8
8
|
|