tencent cloud

Simple Email Service

Introdução do produto
Visão geral
Funcionalidades
Vantagens
Casos de uso
Especificações
Guia de aquisição
Preços
Guia do console
Configuração
Estatísticas
Documentação do SMTP
Guia de envio de e-mail do SMTP
Endereço do serviço do SMTP
Exemplo de chamada para Java
Exemplo de chamada para Go
Envio de e-mail com anexo
Código de erro
Documentação do webhook
Notificação de evento por e-mail
Restrições de envio de e-mail
Tipos de anexo
Perguntas frequentes
Introdução
Limite de envio
Funcionalidade de envio
Domínio
Modelo
Verificação e configuração de identidade
IP dedicado
Entrega
Uso de API
Retorno
Pasta de spam
Segurança
Observações importantes
Outros
Fale conosco

Exemplo de chamada para Go

PDF
Modo Foco
Tamanho da Fonte
Última atualização: 2025-12-15 12:08:02
O código de exemplo abaixo usa o SMTP para enviar um e-mail na linguagem Go (v1.16):
package main

import (
"crypto/tls"
"fmt"
"log"
"net"
"net/smtp"
"encoding/base64"
)

// Test465 da porta 465
func Test465() error {
host := "sg-smtp.qcloudmail.com"
port := 465
// Endereço do remetente criado no console
email := "abc@cd.com"
// Senha do SMTP definida no console
password := "****"
toEmail := "test@test123.com"
ccEmail := "cc@test123.com"
bccEmail := "bcc@test123.com"
header := make(map[string]string)
header["From"] = "test " + "<" + email + ">"
header["To"] = toEmail
header["Cc"] = ccEmail
header["Bcc"] = bccEmail
header["Subject"] = "test subject"
// E-mail em HTML
header["Content-Type"] = "text/html; charset=UTF-8"
header["Content-Transfer-Encoding"] = "base64"
body := "<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\\"utf-8\\">\\n<title>hello world</title>\\n</head>\\n<body>\\n " +
"<h1>My first heading</h1>\\n <p>My first paragraph.</p>\\n</body>\\n</html>"
// E-mail com texto sem formatação
//header["Content-Type"] = "text/plain; charset=UTF-8"
//body := "test body"
message := ""
for k, v := range header {
message += fmt.Sprintf("%s: %s\\r\\n", k, v)
}
message += "\\r\\n" + base64.StdEncoding.EncodeToString([]byte(body))
auth := smtp.PlainAuth(
"",
email,
password,
host,
)
err := SendMailWithTLS(
fmt.Sprintf("%s:%d", host, port),
auth,
email,
[]string{toEmail},
[]byte(message),
)
if err != nil {
fmt.Println("Send email error:", err)
} else {
fmt.Println("Send mail success!")
}
return err
}

// Dial retorna um cliente smtp
func Dial(addr string) (*smtp.Client, error) {
conn, err := tls.Dial("tcp", addr, nil)
if err != nil {
log.Println("tls.Dial Error:", err)
return nil, err
}

host, _, _ := net.SplitHostPort(addr)
return smtp.NewClient(conn, host)
}

// SendMailWithTLS envia e-mail com tls
func SendMailWithTLS(addr string, auth smtp.Auth, from string,
to []string, msg []byte) (err error) {
//cria cliente smtp
c, err := Dial(addr)
if err != nil {
log.Println("Create smtp client error:", err)
return err
}
defer c.Close()
if auth != nil {
if ok, _ := c.Extension("AUTH"); ok {
if err = c.Auth(auth); err != nil {
log.Println("Error during AUTH", err)
return err
}
}
}
if err = c.Mail(from); err != nil {
return err
}
for _, addr := range to {
if err = c.Rcpt(addr); err != nil {
return err
}
}
w, err := c.Data()
if err != nil {
return err
}
_, err = w.Write(msg)
if err != nil {
return err
}
err = w.Close()
if err != nil {
return err
}
return c.Quit()
}

func main() {
Test465()
}


Ajuda e Suporte

Esta página foi útil?

comentários