golang 通过 smtp 发送邮件

deepdata · · 3548 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

package main

import(
"fmt"
"net/smtp"
"encoding/base64"
)
//html,plain
func SendMail( title,user,pswd,smtpserver,port,from,to,subject,body,format string ) error {
bs64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
header := make(map[string]string)
header["From"] = title+"<"+from+">"
header["To"] = to
header["Subject"] = fmt.Sprintf("=?UTF-8?B?%s?=", bs64.EncodeToString([]byte(subject)))
header["MIME-Version"] = "1.0"
header["Content-Type"] = "text/"+format+"; charset=UTF-8"
header["Content-Transfer-Encoding"] = "base64"
data := ""
for k, v := range header {
data += k+": "+v+"\r\n"
}
data += "\r\n" + bs64.EncodeToString([]byte(body))

err := smtp.SendMail( smtpserver+":"+port,smtp.PlainAuth("",user,pswd,smtpserver),from,[]string{to},[]byte(data) )
return err
}

func main(){
title := "DeepData"
from := "info@deepdata.cn"
to := "123456@qq.com"
subject := "TEST SUBJECT"
body := "深数据 deepdata.cn"
smtpserver := "smtp.mxhichina.com"
pswd := "***password***"
err := SendMail( title,from,pswd,smtpserver,"25",from,to,subject,body,"plain" )
fmt.Println( err )
}


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:deepdata

查看原文:golang 通过 smtp 发送邮件

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

3548 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传