Compartilhar via


Enviar email com SMTP

Este artigo descreve como enviar emails usando o Protocolo SMTP (Simple Mail Transfer Protocol).

Pré-requisitos

A conclusão deste artigo gera um pequeno custo de alguns centavos de USD ou menos em sua conta do Azure.

Observação

Você também pode enviar um email de seu próprio domínio verificado. Como adicionar domínios verificados ao Serviço de Comunicação por E-mail.

Este artigo descreve como enviar email com os Serviços de Comunicação do Azure usando SMTP.

Verificação de pré-requisitos

  • Em um terminal ou janela de comando, execute o comando dotnet para verificar se a biblioteca de clientes do .NET está instalada.
  • Para exibir os subdomínios associados ao recurso de email de comunicação do Azure, entre no portal do Azure. Localize o Recurso de Email de Comunicação do Azure e abra a guia Provisionar domínios no painel de navegação esquerdo.

Criar um aplicativo em C#

Em uma janela de console (como cmd, PowerShell ou Bash), use o comando dotnet new para criar um novo aplicativo do console com o nome EmailQuickstart. Esse comando cria um projeto simples C# "Olá, Mundo" com um arquivo de origem único: Program.cs.

dotnet new console -o EmailSmtpQuickstart

Altere o seu diretório para a pasta de aplicativo recém-criada e use o comando dotnet build para compilar o seu aplicativo.

cd EmailSmtpQuickstart
dotnet build

Construir sua mensagem de e-mail

Para construir uma mensagem de email, você precisa:

  • Defina as credenciais de Autenticação SMTP usando a ID do Microsoft Entra.
  • Defina o assunto e o corpo do email.
  • Definir o endereço do remetente. Obtenha seu endereço MailFrom de seu domínio verificado.
  • Definir o Endereço do Destinatário.

Substitua pelos seus detalhes do domínio e modifique o conteúdo. Adicione os detalhes do destinatário conforme necessário.

//Replace with your domain and modify the content, recipient details as required

string smtpAuthUsername = "<SMTP Username>";
string smtpAuthPassword = "<Entra Application Client Secret>";
string sender = "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net";
string recipient = "emailalias@contoso.com";
string subject = "Welcome to Azure Communication Service Email SMTP";
string body = "This email message is sent from Azure Communication Service Email using SMTP.";

Enviar um email usando System.Net.Mail.SmtpClient

Para enviar uma mensagem de e-mail, você precisa:

  1. Criar um SmtpClient usando a URL de host dos Serviços de Comunicação do Azure e as credenciais de Autenticação SMTP.
  2. Criar um MailMessage.
  3. Enviar usando o método de envio SmtpClient.
using System.Net;
using System.Net.Mail;

string smtpAuthUsername = "<SMTP Username>";
string smtpAuthPassword = "<Entra Application Client Secret>";
string sender = "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net";
string recipient = "emailalias@contoso.com";
string subject = "Welcome to Azure Communication Service Email SMTP";
string body = "This email message is sent from Azure Communication Service Email using SMTP.";

string smtpHostUrl = "smtp.azurecomm.net";
var client = new SmtpClient(smtpHostUrl)
{
    Port = 587,
    Credentials = new NetworkCredential(smtpAuthUsername, smtpAuthPassword),
    EnableSsl = true
};

var message = new MailMessage(sender, recipient, subject, body);

try
{
    client.Send(message);
    Console.WriteLine("The email was successfully sent using Smtp.");
}
catch (Exception ex)
{
    Console.WriteLine($"Smtp send failed with the exception: {ex.Message}.");
}

Pré-requisitos

A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.

Observação

Também podemos enviar um e-mail de nosso próprio domínio verificado. Como adicionar domínios verificados ao Serviço de Comunicação por E-mail.

Este artigo descreve como enviar email com os Serviços de Comunicação do Azure usando SMTP.

Enviar um email usando Send-MailMessage

As credenciais podem ser verificadas usando o utilitário Do Microsoft PowerShell Send-MailMessage. Consulte Send-MailMessage para obter a sintaxe.

Para armazenar as credenciais no formato PSCredential necessário, use os seguintes comandos do PowerShell:

$Password = ConvertTo-SecureString -AsPlainText -Force -String '<Entra Application Client Secret>'
$Cred = New-Object -TypeName PSCredential -ArgumentList '<SMTP Username>', $Password

Use o script do PowerShell a seguir para enviar o email. O valor De é o email do endereço de seu domínio verificado. O valor Para é o endereço de email para o qual você deseja enviar.

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail' -Body 'test' -SmtpServer 'smtp.azurecomm.net' -Port 587 -Credential $Cred -UseSsl