dongmiyu8979
2015-05-18 18:41
浏览 117
已采纳

smtp.SendMail无法将邮件发送到多个配方golang

I want to send mail to multiple recipients in Go, with my yahoo mail, but I from all recipients only I get mail.

Code:

err := smtp.SendMail(
    "smtp.mail.yahoo.com:25",
    auth,
    "testmail1@yahoo.com",
    []string{"testmail1@yahoo.com, testmail2@yahoo.com"},
    []byte("test")

message:

From: "testMail1" <testmail1@yahoo.com>
To: testMail1 <testmail1@yahoo.com>, testMail2 <testmail2@yahoo.com>,
Subject: "mail"
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

This is output:

2015/05/18 20:22:26 501 Syntax error in arguments

What have I done wrong?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanguane1670 2015-05-18 21:30
    已采纳

    Your code snippet is incomplete and does not match your email. Could you send more code?

    Anyway you can try replacing:

    []string{"testmail1@yahoo.com, testmail2@yahoo.com"},
    

    By:

    []string{"testmail1@yahoo.com", "testmail2@yahoo.com"},
    

    Also you can try my package Gomail to easily send emails:

    package main
    
    import (
        "gopkg.in/gomail.v2"
    )
    
    func main() {
        m := gomail.NewMessage()
        m.SetAddressHeader("From", "testmail1@yahoo.com", "testMail1")
        m.SetHeader("To",
            m.FormatAddress("testmail1@yahoo.com", "testMail1"),
            m.FormatAddress("testmail2@yahoo.com", "testMail2"),
        )
        m.SetHeader("Subject", "mail")
        m.SetBody("text/plain", "Hello!")
    
        d := gomail.NewPlainDialer("smtp.mail.yahoo.com", 25, "login", "password")
        if err := d.DialAndSend(m); err != nil {
            panic(err)
        }
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题