このライブラリを見つけましたが、空のメールで添付ファイルを送信できましたが、テキストと添付ファイルは結合しませんでした。それは行うことができますどのように添付ファイルが添付されたメールをGoに送信する方法
https://github.com/sloonz/go-mime-message
?
このライブラリを見つけましたが、空のメールで添付ファイルを送信できましたが、テキストと添付ファイルは結合しませんでした。それは行うことができますどのように添付ファイルが添付されたメールをGoに送信する方法
https://github.com/sloonz/go-mime-message
?
私はそれを自分で実装することになった:https://github.com/scorredoira/email
使い方を非常に簡単です:
m := email.NewMessage("Hi", "this is the body")
m.From = "[email protected]"
m.To = []string{"[email protected]"}
err := m.Attach("picture.png")
if err != nil {
log.Println(err)
}
err = email.Send("smtp.gmail.com:587", smtp.PlainAuth("", "user", "password", "smtp.gmail.com"), m)
SMTPプロトコルの添付ファイルは、Multipart MIMEメッセージを使用して送信されます。
だから私はあなただけで
がMultipartMessage
を作成する提案がAddPart
を使用して部品としてあなたの添付を追加します("Content-Type", "text/plain"
付き)TextMessage
として拳の部分にテキストを設定します。
これは私が試していることですが、何らかの理由で動作させることができません。私はここに詳細を説明する問題を作成しました:https://github.com/sloonz/go-mime-message/issues/1 –
あなたはあなたが参照しているライブラリを教えてくださいできますか? –
私は、この目的のためにgomailを作成しました。これは、マルチパートの電子メールと非ASCII文字のエンコードだけでなく添付ファイルもサポートしています。それはよく文書化され、テストされています。
package main
func main() {
m := gomail.NewMessage()
m.SetHeader("From", "[email protected]")
m.SetHeader("To", "[email protected]", "[email protected]")
m.SetAddressHeader("Cc", "[email protected]", "Dan")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!")
m.Attach("/home/Alex/lolcat.jpg")
d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456")
// Send the email to Bob, Cora and Dan.
if err := d.DialAndSend(m); err != nil {
panic(err)
}
}
私は電子メールの目的でhttps://github.com/jordan-wright/emailを使用することを好む:ここ
は一例です。 添付ファイルをサポートしています。人間ため
メールは、電子メールのパッケージが使用するのは簡単ように設計されていますが、限定的にならないように 十分な柔軟性を備えています。目標は、人間のための電子メールインターフェイス を提供することです。
emailパッケージは、現在、以下をサポートしています。 "[email protected]" と "姓" 形式
両方で のBcc、とCCフィールドに電子メールアドレスから、
- テキストおよびHTMLメッセージ本文
- 添付
- 開封確認
- カスタムヘッダ
- もっと来て!
これはおそらく最も簡単です:3 – Kokizzu
Gmailではもうこれを許可していません。 – qed
@qed、私はちょうどGmailでテストして、うまくいきます。 –
@qed Googleアカウントの設定に入り、アプリ/セキュリティの下で安全でないアプリのアクセスを有効にする必要があります。私はこの目的のためにスローアウェイ電子メールアカウントを強く勧めます。 gmailに登録していて、特定の年齢に達している場合は、登録時に以前のメールアドレスを入力する必要はありません。 – anon58192932