Vix Blog
No Result
View All Result
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA
NEWSLETTER
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA
No Result
View All Result
Vix Blog
No Result
View All Result

Porquê enviar e-mails em Go usando o pacote Net/SMTP

Carolina by Carolina
12 de agosto de 2022
Reading Time: 9 mins read
0
Porquê enviar e-mails em Go usando o pacote Net/SMTP

RELATED POSTS

O que é DNS criptografado? Os 4 principais provedores para melhorar a privacidade e a segurança online

Não consegue fazer login no seu Mac? Experimente estas 4 dicas

O que é bateria mAh e o que ela mede?

Muitas vezes, você pode precisar enviar e-mails para muitas contas usando programas para autenticação e muitos outros propósitos.

O protocolo SMTP define padrões que permitem a informação de e-mail entre servidores de e-mail e agentes de transferência de e-mail, enquanto o protocolo IMAP é para recebimento de e-mails.

Go fornece funcionalidade para atividades relacionadas a e-mail definidas pelo RFC no pacote net/smtp, que também contém extensões 8BITMIME, AUTH e STARTTLS.

O código usado neste projeto está disponível em um repositório do GitHub e é gratuito para você usar sob a licença MIT.

Porquê enviar e-mails em Go usando o pacote Net/SMTP

O pacote net/smtp faz segmento da livraria padrão Go, logo você não precisa instalar nenhum pacote extrínseco. Você só precisa importar o pacote antes de usá-lo.

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

Você também precisará importar o registro pacote para registrar erros no console e no criptografia/tls pacote para configurar uma conexão segura.

Depois de importar o pacote net/smtp, você deve grafar um Enviar correio() função para enviar o correio e, em seguida, invocar a função na função principal.

func main() {
fmt.Print(SendMail())
}
func SendMail() string {
}

o Enviar correio() A função conteria o código que envia o e-mail aos destinatários.

Porquê o envio de e-mails funciona

O protocolo SMTP define os parâmetros que todo e-mail precisa ter. Esses parâmetros são os endereços de e-mail do remetente e do destinatário, uma porta na qual o e-mail é enviado, um servidor host e uma mensagem.

Os parâmetros indicados supra são importantes para o envio de e-mails.

Neste tutorial, você aprenderá a enviar e-mails do Yahoo. No entanto, o processo é o mesmo para qualquer provedor de servidor de email (MSP) que você usar.

Porquê você está usando o Yahoo Mail, faça login na sua conta do Yahoo Mail, vá para Informações da Conta, e clique no Segurança da conta aba. Em seguida, gere uma senha de aplicativo. Você precisará nomear o aplicativo e, em seguida, o Yahoo Mail criará uma senha para o aplicativo e você poderá usar a senha em seu código junto com seu endereço de e-mail.


Yahoo mail gera interação de usuário de senha

No Enviar correio() função, você declarará três variáveis; uma variável que contém a string do seu e-mail, uma que contém a senha do seu e-mail e uma string que contém o endereço de e-mail para o qual você está enviando mensagens.

from := "yourMail@gmail.com"
password := "aSecurePasswordHere"
to := "anemail@gmail.com"

Você pode usar uma fatia e percorrer os elementos se pretender enviá-los para vários destinatários.

Obtendo e configurando o host e a porta de e-mail

O protocolo SMTP usa os números do host e da porta para identificar a origem do email. É cá que entra o seu MSP. Você precisa saber o host e o número da porta que seu MSP permite que você use.

Verifique leste recurso para obter uma lista de hosts MSP e números de porta se você usa e-mails públicos uma vez que Gmail, Yahoo ou Outlook. O Google desativou “aplicativos menos seguros” para o Gmail; você pode querer proteger seu aplicativo se estiver usando o Gmail.

Depois de obter o número da porta e o endereço do host, atribua-os a variáveis ​​uma vez que esta:

host := "smtp.mail.yahoo.com"
port := "465"

Os números de host e porta supra são do Yahoo Mail para uso em contas normais. O servidor está hospedado em smtp.mail.yahoo.com, e você tem permissão para usar a porta 465 para enviar e-mails.

Declarando o texto do e-mail

O próximo passo é declarar o texto do correio uma vez que variáveis. O peça e o corpo compõem a mensagem.

subject := "Hey, I'm Just Checking On You."
body := "Hope you're doing okay! How are you doing today. "

o sujeito variável é o peça do email; a corpo variável é o corpo do e-mail que você está enviando.

Você precisará fazer um vegetal de strings para denotar os cabeçalhos do email.

headers := make(map[string]string)
headers["From"] = from
headers["To"] = to
headers["Subject"] = subject
message := ""
for k, v := range headers {
message += fmt.Sprintf("%s: %sr", k, v)
}
message += "r" + body

Primeiro, você cria um vegetal de chaves e valores de string e define os cabeçalhos de seu endereço, o endereço do destinatário e o peça, conforme mostrado supra. Usando um loop for de pausa no cabeçalhos vegetal, um mensagem A variável é declarada para sofrear os cabeçalhos e a mensagem usando formatação de string.

Autenticação do e-mail

O email precisa de autenticação para verificar a origem. O pacote smtp fornece funcionalidade para autenticação de e-mail usando o PlainAuth. o PlainAuth O método recebe a identidade, o e-mail do remetente, a senha e o host uma vez que parâmetros e retorna um Autenticação objeto que você usará para enviar o e-mail.

authenticate := smtp.PlainAuth("", from, password, host)

A identidade é seu nome de usuário, que pode ser deixado em branco, uma vez que visto neste caso.

Criando uma conexão para o e-mail

Alguns provedores de serviços de e-mail exigem que você envie o e-mail por meio de uma conexão. Neste cláusula, faremos uma conexão TCP com o servidor com configurações TLS.

tlsConfig := &tls.Config{
InsecureSkipVerify: true,
ServerName: host,
}

No código supra, você fez uma forma TLS referenciando o Laia estrutura onde InsecureSkipVerify foi definido para verdadeiroe o nome do servidor foi atribuído ao hospedeiro variável.

Você deve fabricar uma conexão TCP usando o Discar método do tls pacote. o discar O método recebe o tipo de conexão (TCP), neste caso, o endereço do servidor e as configurações de conexão TLS.


connection, err := tls.Dial("tcp", serverAddress, tlsConfig) err != nil {
log.Panic(err)
}

No código supra, você fez uma conexão TCP e lidou com erros; você terá instanciado um novo pacote smtp usando o Novo cliente método do net/smtp pacote. o Novo cliente O método recebe uma conexão e um host, respectivamente.

smtpClient, err := smtp.NewClient(connection, host)
if err != nil {
log.Panic(err)
}

Agora que você criou um smtp instância do cliente, você deve definir os parâmetros da smtpClient e mourejar com erros.

if err = smtpClient.Auth(authenticate); err != nil {
log.Panic(err)
}
if err = smtpClient.Mail(from); err != nil {
log.Panic(err)
}
if err = smtpClient.Rcpt(headers["To"]); err != nil {
log.Panic(err)
}

No exemplo supra, você passou os parâmetros de autenticação, endereço do remetente e endereço do destinatário para seus respectivos métodos e tratou de erros.

Por término, você precisa gravar na instância de conexão e pode fazer isso criando um gravador usando o Dados método do seu cliente smtp instância.

writer, err := smtpClient.Data()
if err != nil {
log.Panic(err)
}
_, err = writer.Write([]byte(message))
if err != nil {
log.Panic(err)
}

Depois de fabricar um gravador, você escreve uma fatia de bytes da mensagem usando o Escreva método uma vez que no exemplo supra.

err = writer.Close()
if err != nil {
log.Panic(err)
}
err = smtpClient.Quit()
if err != nil {
return
}
return "Successful, the mail was sent!"

Feche o gravador e saia da instância de conexão do cliente smtp usando o código supra. o Enviar correio() A função retorna uma mensagem de sucesso, conforme mostrado supra.

Ao invocar o Enviar correio() função no a Principal função, você deve obter a mensagem de sucesso registrada em seu console e o email` enviado ao seu destinatário.

Prova de que o e-mail foi enviado com sucesso

Há mais no pacote Net

O pacote net contém muitos pacotes para funcionalidades relacionadas à rede e o pacote smtp é somente um deles. Você também pode usar os pacotes TCP e HTTP para desenvolvimento relacionado à rede.

Você pode encontrar o pacote net/smtp esmagador se não for um desenvolvedor de back-end. Existem muitas outras alternativas para enviar e-mails rapidamente com menos linhas de código. Você pode conferir empresas de marketing por e-mail uma vez que SendGrid, Twilio e MailChimp e serviços de newsletter uma vez que Substack e Revue que permitem enviar e-mails para muitos usuários sem estresse.

Carolina

Carolina

Related Posts

O que é DNS criptografado?  Os 4 principais provedores para melhorar a privacidade e a segurança online
Notícias

O que é DNS criptografado? Os 4 principais provedores para melhorar a privacidade e a segurança online

19 de janeiro de 2023
Não consegue fazer login no seu Mac?  Experimente estas 4 dicas
Notícias

Não consegue fazer login no seu Mac? Experimente estas 4 dicas

19 de janeiro de 2023
O que é bateria mAh e o que ela mede?
Notícias

O que é bateria mAh e o que ela mede?

19 de janeiro de 2023
Qual M2 Pro Mac você deve comprar?
Notícias

Qual M2 Pro Mac você deve comprar?

19 de janeiro de 2023
8 sites freelancers menos conhecidos e de baixa concorrência
Notícias

8 sites freelancers menos conhecidos e de baixa concorrência

18 de janeiro de 2023
O que é uma compra em grupo de teclado mecânico e porquê eles funcionam?
Notícias

O que é uma tecla de via e porquê você pode fazer a sua própria?

18 de janeiro de 2023
Next Post
Quando usar o modo de disparo contínuo em sua câmera

Quando usar o modo de disparo contínuo em sua câmera

Uma vez que calcular as horas de projeto freelance com precisão

Uma vez que calcular as horas de projeto freelance com precisão

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

No Result
View All Result

Últimas Notícias

The Mid-Range Phones That Everyone Needs

The Mid-Range Phones That Everyone Needs

1 de abril de 2023
6 melhores sites para folhas de dicas, atalhos e cartões de referência rápida

6 melhores sites para folhas de dicas, atalhos e cartões de referência rápida

1 de abril de 2023
The 10 Best Nintendo Switch Controllers

The 10 Best Nintendo Switch Controllers

1 de abril de 2023
O que é Apple Music Classical e vale a pena?

O que é Apple Music Classical e vale a pena?

1 de abril de 2023
O que é um desenvolvedor de jogos e uma vez que você pode se tornar um?

O que é um desenvolvedor de jogos e uma vez que você pode se tornar um?

1 de abril de 2023

Categorias

  • Entretenimento
  • Mundo
  • Notícias
  • Segurança
Vix Blog

Somos entusiastas da tecnologia com a missão de ensinar ao mundo como usar e compreender a tecnologia em suas vidas.
SAIBA MAIS »

Entre em contato conosco enviando um e-mail para contato@vixblog.com

Posts recentes

  • The Mid-Range Phones That Everyone Needs
  • 6 melhores sites para folhas de dicas, atalhos e cartões de referência rápida
  • The 10 Best Nintendo Switch Controllers

Categorias

  • Entretenimento
  • Mundo
  • Notícias
  • Segurança

Links Importantes

  • Quem Somos
  • Blog
  • Fale Conosco
  • Política de Privacidade
  • DMCA

© 2021 VixBlog - Notícias e dicas para o seu dia dia.

No Result
View All Result
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA

© 2021 VixBlog - Notícias e dicas para o seu dia dia.