首页
学习
活动
专区
圈层
工具
发布

使用 GOLANG 发送邮件

, 而且,有时候因为各种各种各样的原因,不能准时的发送邮件,这个时候,咱们如果可以写一个定制化的发送邮件的程序那可以说还是很香的 那么,咱们还是先来看看一些基本的常识吧 邮件是什么?..." ) func main() { // 简单设置 log 参数 log.SetFlags(log.Lshortfile | log.LstdFlags) em := email.NewEmail...,就可以抄送,密送,添加附件,或者发 HTML 的内容了呢 ,咱们改造一下上述的代码 func main() { // 简单设置l og 参数 log.SetFlags(log.Lshortfile...| log.LstdFlags) em := email.NewEmail() //设置发送方的邮箱 em.From = "xx " // 设置接收方的邮箱...// 简单设置l og 参数 log.SetFlags(log.Lshortfile | log.LstdFlags) // 创建有5 个缓冲的通道,数据类型是 *email.Email

2.9K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Go语言实战笔记(十八)| Go log 日志

    func init(){ log.SetFlags(log.Ldate|log.Lshortfile) } 我们使用init函数,这个函数在main函数执行之前就可以初始化,可以帮我们做一些配置,这里我们自定义日志的抬头信息为时间...也就是log.Ldate|log.Lshortfile,中间是一个位运算符|,然后通过函数log.SetFlags进行设置。现在我们再运行下看看输出的日志。...log.SetFlags(log.Ldate|log.Ltime |log.LUTC) 那么对我们东八区的时间来说,就会减去8个小时,我们看输出: 2017/04/29 05:46:29 飞雪无情的博客...func init(){ log.SetPrefix("【UserCenter】") log.SetFlags(log.LstdFlags | log.Lshortfile |log.LUTC) }...(os.Stderr,errFile),"Error:",log.Ldate | log.Ltime | log.Lshortfile) } func main() { Info.Println(

    1.3K21

    Go-标准库-log(二)

    默认情况下,log包的日志级别是“Info”。如果需要记录不同级别的日志信息,可以使用log包提供的SetFlags方法来更改日志记录格式,并使用log包提供的SetLevel方法来设置日志级别。...mainimport ( "log" "os")func main() { log.SetOutput(os.Stdout) log.SetPrefix("DEBUG: ") log.SetFlags...(log.Ldate | log.Ltime | log.Lshortfile) log.SetLevel(log.TraceLevel) log.Trace("This is a trace...同时,由于我们使用了log.Lshortfile标志,输出信息中也包含了源文件名和行号信息。结论本文介绍了Go标准库中log包的使用方法,并提供了一些示例。...同时,log包还提供了一些定制化的功能,可以让我们更加方便地管理和记录日志信息。如果您正在开发一个Go应用程序,那么log包是您不可或缺的日志记录工具之一。

    29710

    你真的知道 GO 中 nil 代表什么吗?

    一样 此处说到零值,他其实就是一种数据类型还没有被初始化的时候的默认值,对应着的就是一个零值 例如: 整形的零值,是 0 字符串的零值是 "" 那么布尔类型的零值自然就是 false 零值默认为 nil...,并进行赋值和输出 func main() { log.SetFlags(log.Lshortfile) nil := 123 true := 111 false := 222...,Golang 中可以使用 unsafe 包中的 Sizeof 方法来进行查看 func main() { log.SetFlags(log.Lshortfile) var ptr *int...如果 map 之前是经过初始化的,那么我们访问一个不存在的 key 是没有问题的,且我们一般去访问 map 中的值的时候会比较谨慎,例如: func main() { log.SetFlags(...log.Lshortfile) demoMap := map[int]string{ 1: "xiaoming", 2: "xiaoxiong", } value

    1.6K30

    Go 语言中 panic 和 recover 搭配使用

    直接不做显示的 recover,自然 panic 程序崩溃会如期而至,此处我们显示的使用 panic 函数来制造恐慌 func main() { log.SetFlags(log.Lshortfile...) panic("panic coming...") } 不使用 defer 来进行处理 func main() { log.SetFlags(log.Lshortfile)...待程序运行到 panic 处的时候,实际上并没有没有处理程序崩溃的异常 结果,仍然是程序崩溃 当然,还有文章开头提到的出现 panic 的位置和捕获和处理程序崩溃异常的位置不在同一个协程,自然也是没法捕获到的...p.recovered 逻辑下的关于 recover 的逻辑被删除掉了,在文章的后面会继续说到,当前我们先关注 panic 的事项 runtime.gopanic 程序的逻辑大体是这样的 获取当前 协程...还是同一个例子,咱们将 defer 部分的代码注打开,来继续看看效果 func main() { log.SetFlags(log.Lshortfile) defer func() {

    46620

    一个简单的Golang实现的HTTP Proxy

    最近因为换了Mac,以前的Linux基本上不再使用了,但是我的SS代理还得用。SS代理大家都了解,一个很NB的Socket代理工具,但是就是因为他是Socket的,想用HTTP代理的时候很不方便。...想着就开始做吧,以前基本上没有搞过太多的网络编程,最近也正好在研究Go,正好练练手。 我们这里主要讲使用HTTP/1.1协议中的CONNECT方法建立起来的隧道连接,实现的HTTP Proxy。...这种代理的好处就是不用知道客户端请求的数据,只需要原封不动的转发就可以了,对于处理HTTPS的请求就非常方便了,不用解析他的内容,就可以实现代理。...解析请求,获取要访问的IP和端口 有了客户端的代理请求了,我们还得从请求里提取客户端要访问的远程主机的IP和端口,这样我们的代理服务器才可以建立和远程主机的连接,代理转发。..."net/url" "strings" ) func main() { log.SetFlags(log.LstdFlags|log.Lshortfile) l, err := net.Listen

    5.3K30
    领券