mystuff我有一个处理发送电子邮件的包。package mystuffimport ( "crypto/tls" "gopkg.in/gomail.v2")type Params struct { From, To, Subject, Body, Filename string}func Mail(p Params) (err error) { m := gomail.NewMessage() m.SetHeader("From", p.From) m.SetHeader("To", p.To) m.SetHeader("Subject", p.Subject) m.SetBody("text/plain", p.Body) m.Attach(p.Filename) d := gomail.Dialer{Host: "smtp.example.com", Port: 25} d.TLSConfig = &tls.Config{InsecureSkipVerify: true} if err := d.DialAndSend(m); err != nil { panic(err) } return}和发送电子邮件的主要部分package mainimport . "mystuff"func main() { Mail(Params{From: "example@example.com", To: "some@gmail.com", Subject: "Sub", Body: "B", Filename: "/tmp/image.jpg" })}我想作为Filename一个可选参数。例如 Mail(Params{From: "example@example.com", To: "some@gmail.com", Subject: "Sub", Body: "B" })}
1 回答
智慧大石
TA贡献1946条经验 获得超3个赞
使用文件名作为可选参数,您必须检查参数文件名的长度(字符串初始化为空):
func Mail(p Params) (err error) {
m := gomail.NewMessage()
m.SetHeader("From", p.From)
m.SetHeader("To", p.To)
m.SetHeader("Subject", p.Subject)
m.SetBody("text/plain", p.Body)
if len(p.Filename)>0 {
m.Attach(p.Filename)
}
d := gomail.Dialer{Host: "smtp.example.com", Port: 25}
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if err := d.DialAndSend(m); err != nil {
panic(err)
}
return
}
- 1 回答
- 0 关注
- 274 浏览
添加回答
举报
0/150
提交
取消