Gmail Go SDK を使用してメールを送信する方法
問題:
Gmail Go SDK は、特に必要な Message オブジェクトを作成するための明確なドキュメントが不足しているため、難しい場合があります。メッセージ タイプのフィールドは主に電子メールの解析を容易にするため、電子メールを送信するための有効なペイロードを構築する方法が不明瞭なままです。
解決策:
API は複雑ですが、次の手順を参照してください。 Gmail Go SDK 経由でメールを送信するには:
1.メッセージ オブジェクトを作成します:
2. Gmail サービスの初期化:
3.電子メールの送信:
4.ヘッダー値のエンコード:
5.メッセージ本文をエンコードします:
カスタム コード スニペット:
<code class="go">import ( "encoding/base64" "encoding/json" "fmt" "log" "net/mail" "strings" gmail "google.golang.org/api/gmail/v1" ) type Email struct { FromName, FromEmail, ToName, ToEmail, Subject string Message string } func (em *Email) SendMessage(cl *Client) error { from := mail.Address{em.FromName, em.FromEmail} to := mail.Address{em.ToName, em.ToEmail} header := make(map[string]string) header["From"] = from.String() header["To"] = to.String() header["Subject"] = encodeRFC2047(em.Subject) header["MIME-Version"] = "1.0" header["Content-Type"] = "text/html; charset=\"utf-8\"" header["Content-Transfer-Encoding"] = "base64" var msg string for k, v := range header { msg += fmt.Sprintf("%s: %s\r\n", k, v) } msg += "\r\n" + em.Message gmsg := gmail.Message{ Raw: encodeWeb64String([]byte(msg)), } // Send the email using Gmail Service ... return nil } func encodeRFC2047(s string) string { // use mail's rfc2047 to encode any string addr := mail.Address{s, ""} return strings.Trim(addr.String(), " <>") } func encodeWeb64String(b []byte) string { s := base64.URLEncoding.EncodeToString(b) var i = len(s) - 1 for s[i] == '=' { i-- } return s[0 : i+1] }</code>
次の手順に従うことで、有効な Message オブジェクトを構築し、Gmail Go SDK を介してメールを正常に送信できます。
以上がGmail Go SDK を使用してメールを送信する方法: メッセージ オブジェクト作成のパズルを解くには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。