Test de votre connexion à l'SESSMTPinterface Amazon à l'aide de la ligne de commande - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Test de votre connexion à l'SESSMTPinterface Amazon à l'aide de la ligne de commande

Vous pouvez utiliser les méthodes décrites dans cette section depuis la ligne de commande pour tester votre connexion au point de SES SMTP terminaison Amazon, valider vos SMTP informations d'identification et résoudre les problèmes de connexion. Ces procédures utilisent des outils et des bibliothèques qui sont inclus avec la plupart des systèmes d'exploitation courants.

Pour plus d'informations sur la résolution des problèmes de SMTP connexion, consultezProblèmes SMTP Amazon SES.

Prérequis

Lorsque vous vous connectez à l'SESSMTPinterface Amazon, vous devez fournir un ensemble d'SMTPinformations d'identification. Ces SMTP informations d'identification sont différentes de vos AWS informations d'identification standard. Les deux types d'informations d'identification ne sont pas interchangeables. Pour plus d'informations sur l'obtention de vos SMTP informations d'identification, consultezObtention des SES SMTP informations d'identification Amazon.

Test de votre connexion à l'SESSMTPinterface Amazon

Vous pouvez utiliser la ligne de commande pour tester votre connexion à l'SESSMTPinterface Amazon sans vous authentifier ni envoyer de message. Cette procédure est utile pour résoudre les problèmes de connectivité de base. Si votre connexion de test échoue, consultez Problèmes SMTP.

Cette section décrit les procédures permettant de tester votre connexion à l'aide d'Open SSL (qui est inclus dans la plupart des distributions Linux, macOS et Unix, et qui est également disponible pour Windows) et de l'Test-NetConnectionapplet de commande PowerShell (incluse dans les versions les plus récentes de Windows).

Linux, macOS, or Unix

Il existe deux manières de se connecter à l'SESSMTPinterface Amazon avec Open SSL : en utilisant le port explicite SSL sur le port 587 ou en utilisant le port implicite SSL sur le port 465.

Pour vous connecter à l'SMTPinterface à l'aide d'une méthode explicite SSL
  • Sur la ligne de commande, entrez la commande suivante pour vous connecter au SES SMTP serveur Amazon :

    openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587

    Dans la commande précédente, remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon de votre AWS région. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

    Si la connexion est réussie, vous obtenez une sortie similaire à ce qui suit :

    depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 250 Ok

    La connexion se ferme automatiquement au bout de 10 secondes d'inactivité.

Vous pouvez également utiliser l'implicite SSL pour vous connecter à l'SMTPinterface via le port 465.

Pour vous connecter à l'SMTPinterface en utilisant implicitement SSL
  • Sur la ligne de commande, entrez la commande suivante pour vous connecter au SES SMTP serveur Amazon :

    openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    Dans la commande précédente, remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon de votre AWS région. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

    Si la connexion est réussie, vous obtenez une sortie similaire à ce qui suit :

    depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon verify return:1 depth=0 CN = email-smtp.us-west-2.amazonaws.com verify return:1 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-VCSHDP1YZ A1b2C3d4E5f6G7h8I9j0

    La connexion se ferme automatiquement au bout de 10 secondes d'inactivité.

PowerShell

Vous pouvez utiliser l'NetConnectionapplet de commande Test-in PowerShell pour vous connecter au serveur Amazon SESSMTP.

Note

L'Test-NetConnectionapplet de commande peut déterminer si votre ordinateur peut se connecter au point de terminaison Amazon SESSMTP. Cependant, il ne teste pas si votre ordinateur peut établir une SSL connexion implicite ou explicite avec le SMTP point de terminaison. Pour tester une SSL connexion, vous pouvez installer Open SSL pour Windows afin d'envoyer un e-mail de test.

Pour vous connecter à l'SMTPinterface à l'aide de l'applet de Test-NetConnection commande
  • Entrez PowerShell la commande suivante pour vous connecter au SES SMTP serveur Amazon :

    Test-NetConnection -Port 587 -ComputerName email-smtp.us-west-2.amazonaws.com

    Dans la commande précédente, remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon de votre AWS région, et remplacez 587 avec le numéro de port. Pour plus d'informations sur les points de terminaison régionaux sur AmazonSES, consultezRégions et Amazon SES.

    Si la connexion aboutit, vous voyez une sortie similaire à l'exemple suivant :

    ComputerName : email-smtp.us-west-2.amazonaws.com RemoteAddress : 198.51.100.126 RemotePort : 587 InterfaceAlias : Ethernet SourceAddress : 203.0.113.46 TcpTestSucceeded : True

Utiliser la ligne de commande pour envoyer un e-mail via l'SESSMTPinterface Amazon

Vous pouvez également utiliser la ligne de commande pour envoyer des messages via l'SESSMTPinterface Amazon. Cette procédure est utile pour tester les SMTP informations d'identification et pour tester la capacité de destinataires spécifiques à recevoir les messages que vous envoyez via AmazonSES.

Linux, macOS, or Unix

Lorsqu'un expéditeur d'e-mail se connecte à un SMTP serveur, le client émet un ensemble standard de demandes, et le serveur répond à chaque demande par une réponse standard. Cette série de demandes et de réponses s'appelle une SMTPconversation. Lorsque vous vous connectez au SES SMTP serveur Amazon via OpenSSL, le serveur s'attend à ce qu'une SMTP conversation ait lieu.

Lorsque vous utilisez Open SSL pour vous connecter à l'SMTPinterface, vous devez encoder vos SMTP informations d'identification à l'aide du codage base64. Cette section inclut les procédures d'encodage de vos informations d'identification à l'aide de base64.

Pour envoyer un e-mail depuis la ligne de commande à l'aide de l'SMTPinterface
  1. Entrez ce qui suit sur la ligne de commande et remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon correspondant à votre Région AWS. Pour plus d'informations, consultezRégions et Amazon SES. :

    #!/bin/bash # Prompt user to provide following information read -p "Configuration set: " CONFIGSET read -p "Enter SMTP username: " SMTPUsername read -p "Enter SMTP password: " SMTPPassword read -p "Sender email address: " MAILFROM read -p "Receiver email address: " RCPT read -p "Email subject: " SUBJECT read -p "Message to send: " DATA echo # Encode SMTP username and password using base64 EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64) EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64) # Construct the email Email="EHLO example.com AUTH LOGIN $EncodedSMTPUsername $EncodedSMTPPassword MAIL FROM: $MAILFROM RCPT TO: $RCPT DATA X-SES-CONFIGURATION-SET: $CONFIGSET From: $MAILFROM To: $RCPT Subject: $SUBJECT $DATA . QUIT" echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
  2. À l'invite correspondant à chaque variable, entrez vos valeurs.

    • Pour envoyer par implicite SSL sur le port 465, utilisez :

      openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    Si le message a été accepté par AmazonSES, le résultat affiché ressemble à l'exemple suivant :

    250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000

    La chaîne de nombres et de texte qui suit 250 Ok est l'ID de message de l'e-mail.

    Note

    La connexion se ferme automatiquement au bout de 10 secondes d'inactivité.

PowerShell

Vous pouvez utiliser le Net.Mail. SmtpClientclasse pour envoyer un e-mail en utilisant Explicit SSL sur le port 587.

Note

La classe Net.Mail.SmtpClient est officiellement obsolète, et Microsoft vous recommande d'utiliser des bibliothèques tierces. Ce code est destiné uniquement à des fins de test et ne doit pas être utilisé pour les charges de travail de production.

Pour envoyer un e-mail PowerShell en utilisant Explicit SSL
  1. Dans un éditeur de texte, créez un fichier. Collez le code suivant dans le fichier :

    function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $SMTPClient = New-Object Net.Mail.SmtpClient($Server, $Port) $SMTPClient.EnableSsl = $true $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Credentials.Username, $Credentials.Password); try { Write-Output "Sending message..." $SMTPClient.Send($Sender, $Recipient, $Subject, $Body) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 587 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (explicit SSL, port 587)." $Sender = "sender@example.com" $Recipient = "recipient@example.com" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmail

    Lorsque vous avez terminé, enregistrez le fichier sous SendEmail.ps1.

  2. Modifiez le fichier créé lors de l'étape précédente comme suit :

    • Remplacez sender@example.com avec l'adresse e-mail à partir de laquelle vous souhaitez envoyer le message.

    • Remplacez recipient@example.com avec l'adresse e-mail à laquelle vous souhaitez envoyer le message.

    • Remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon de votre AWS région. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

  3. Dans PowerShell, entrez la commande suivante :

    .\path\to\SendEmail.ps1

    Dans la commande précédente, remplacez path\to\SendEmail.ps1 avec le chemin du fichier que vous avez créé à l'étape 1.

  4. Lorsque vous y êtes invité, entrez votre nom SMTP d'utilisateur et votre mot de passe.

Vous pouvez également utiliser le System.Web.Mail. SmtpMailclasse pour envoyer un e-mail en utilisant SSL implicitement le port 465.

Note

La classe System.Web.Mail.SmtpMail est officiellement obsolète, et Microsoft vous recommande d'utiliser des bibliothèques tierces. Ce code est destiné uniquement à des fins de test et ne doit pas être utilisé pour les charges de travail de production.

Pour envoyer un e-mail PowerShell en utilisant implicitement SSL
  1. Dans un éditeur de texte, créez un fichier. Collez le code suivant dans le fichier :

    [System.Reflection.Assembly]::LoadWithPartialName("System.Web") > $null function SendEmail($Server, $Port, $Sender, $Recipient, $Subject, $Body) { $Credentials = [Net.NetworkCredential](Get-Credential) $mail = New-Object System.Web.Mail.MailMessage $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", $Server) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", $Port) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", $true) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", $Credentials.UserName) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", $Credentials.Password) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", $timeout / 1000) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2) $mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1) $mail.From = $Sender $mail.To = $Recipient $mail.Subject = $Subject $mail.Body = $Body try { Write-Output "Sending message..." [System.Web.Mail.SmtpMail]::Send($mail) Write-Output "Message successfully sent to $($Recipient)" } catch [System.Exception] { Write-Output "An error occurred:" Write-Error $_ } } function SendTestEmail(){ $Server = "email-smtp.us-west-2.amazonaws.com" $Port = 465 $Subject = "Test email sent from Amazon SES" $Body = "This message was sent from Amazon SES using PowerShell (implicit SSL, port 465)." $Sender = "sender@example.com" $Recipient = "recipient@example.com" SendEmail $Server $Port $Sender $Recipient $Subject $Body } SendTestEmail

    Lorsque vous avez terminé, enregistrez le fichier sous SendEmail.ps1.

  2. Modifiez le fichier créé lors de l'étape précédente comme suit :

    • Remplacez sender@example.com avec l'adresse e-mail à partir de laquelle vous souhaitez envoyer le message.

    • Remplacez recipient@example.com avec l'adresse e-mail à laquelle vous souhaitez envoyer le message.

    • Remplacez email-smtp.us-west-2.amazonaws.com avec le point URL de SES SMTP terminaison Amazon de votre AWS région. Pour de plus amples informations, veuillez consulter Régions et Amazon SES.

  3. Dans PowerShell, entrez la commande suivante :

    .\path\to\SendEmail.ps1

    Dans la commande précédente, remplacez path\to\SendEmail.ps1 avec le chemin du fichier que vous avez créé à l'étape 1.

  4. Lorsque vous y êtes invité, entrez votre nom SMTP d'utilisateur et votre mot de passe.