Leitores como você ajudam a apoiar o MUO. Quando você faz uma compra usando links em nosso site, podemos ganhar uma comissão de afiliado. Consulte Mais informação.

Ao criar aplicativos, você precisará enviar e-mails para diferentes finalidades, desde notificações até autenticação e muito mais. Go fornece o smtp e correspondência pacotes em sua biblioteca padrão para envio de e-mail. Também existem muitos pacotes de e-mail de terceiros no ecossistema Go.

Os pacotes de e-mail integrados tornam o envio de e-mail uma tarefa complexa. Se você não for um desenvolvedor de aplicativos do lado do servidor, poderá encontrar o smtp e correspondência pacotes difíceis de usar e configurar.

Uma alternativa popular é a de Jordan Wright e-mail pacote que abstrai a complexidade do envio de correio. Ele também adiciona recursos que você não encontrará no smtp e correspondência pacotes.

Introdução ao pacote de e-mail

O e-mail package é uma biblioteca leve, robusta e flexível, popular por sua simplicidade. Com apenas algumas linhas de código, você pode criar e enviar um e-mail com anexos, conteúdo HTML e muito mais. O pacote também oferece suporte a recursos avançados, como conexões SMTP seguras e vários destinatários, tornando-o uma ferramenta versátil para suas necessidades de e-mail.

instagram viewer

O pacote de e-mail também suporta campos CC e BCC, endereços de e-mail em vários formatos, confirmações de leitura e cabeçalhos personalizados.

Como o pacote não está embutido na biblioteca padrão Go, você precisará instalá-lo com o vai pegar comando. O pacote de e-mail oferece suporte às versões 1.15 e superiores do Go.

Execute este comando para instalar o pacote nas dependências do seu projeto após inicializar um novo projeto.

ir obter github.com/jordan-wright/email

Depois de instalar o pacote de e-mail, você pode importá-lo especificando o local relativo ao seu caminho de instalação:

importar (
"fmt"
"github.com/jordan-wright/email"
"rede/smtp"
)

Você vai usar o fmt pacote para imprimir a saída para o console e o smtp pacote para fins de autenticação.

Enviando e-mails com o pacote de e-mail

Você precisará declarar variáveis ​​para armazenar os dados de seu e-mail. Declare variáveis ​​para seu e-mail e senha.

correio := "seu email"
senha := "sua senha de aplicativo"

Você pode codificar a senha ou usar um arquivo de variável de ambiente para maior segurança.

O correspondência e senha as variáveis ​​devem conter seu e-mail e senha, respectivamente.

Você precisará declarar variáveis ​​para o endereço do host e o número da porta para o correio. Aqui estão o endereço do host e o número da porta do Yahoo Mail:

hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"

Você também precisará criar uma nova instância de e-mail para enviar e-mails com o e-mail pacote. Você pode usar o método NewEmail do e-mail pacote para inicializar uma instância de e-mail para o seu e-mail:

novoE-mail := e-mail. Novo Email()

O Novo Email O método retorna uma instância struct que você pode modificar para os elementos do seu e-mail.

Você pode usar o De e Para campos da estrutura para adicionar os e-mails do remetente e do destinatário à sua instância de e-mail.

Novo Email. De = correio
Novo Email. Para = []corda{"lista de destinatários"}

O Para field é uma fatia de strings com capacidade ilimitada que você pode usar para declarar todos os seus endereços de destinatários.

Você pode adicionar CC e BCC campos do seu e-mail usando o Bcc e Cc campos da instância struct:

Novo Email. Cco = []corda{"lista de bcc"}
Novo Email. Cc = []corda{"lista de cc"}

Para o conteúdo do e-mail, você pode adicionar o assunto e o conteúdo do texto do seu e-mail usando o Assunto e Texto campos da estrutura. O assunto é um campo de string e o conteúdo do texto é uma fatia de byte.

Novo Email. Assunto = "O assunto do e-mail"
Novo Email. Texto = []byte("Corpo do seu e-mail")

Depois de adicionar todos os campos obrigatórios, você pode enviar o e-mail usando o Enviar método da sua instância de e-mail. O Enviar O método recebe o endereço do host, o número da porta do host e uma instância do smtp pacote de PlainAuth.

err := novoE-mail. Enviar(
fmt. Sprintf("%s:%s", hostAddress, hostPort),
smtp. PlainAuth("", email, senha, hostAddress)
)

se erro != nada {
fmt. Imprimirln("Ocorreu um erro ao enviar o e-mail")
} outro {
fmt. Imprimirln("O e-mail foi enviado com sucesso")
}

O Enviar método retorna um erro que você pode manipular ou nada se não houver erros.

Você enviou com sucesso um e-mail com o e-mail pacote com menos linhas do que você teria que escrever envie um e-mail com o smtp pacote.

Você pode enviar e-mail com o pacote SMTP integrado

Go é uma linguagem bem planejada, já que sua biblioteca padrão vem com a maioria das funcionalidades necessárias para construir aplicativos web completos sem dependências externas ou pacotes de terceiros.

O smtp pacote é útil para enviar e-mails através de vários serviços com funcionalidades semelhantes ao e-mail pacote.