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.
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.