

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'interface SMTP Amazon SES à l'aide de la ligne de commande
<a name="send-email-smtp-client-command-line"></a>

Vous pouvez utilisez les méthodes décrites dans cette section depuis la ligne de commande pour tester votre connexion au point de terminaison SMTP Amazon SES, valider vos informations d'identification SMTP 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 connexion SMTP, veuillez consulter [Problèmes SMTP Amazon SES](troubleshoot-smtp.md).

## Conditions préalables
<a name="send-email-smtp-client-command-line-prereqs"></a>

Lorsque vous vous connectez à l'interface SMTP Amazon SES, vous devez fournir un ensemble d'informations d'identification SMTP. Ces informations d'identification SMTP sont différentes de vos informations d' AWS identification standard. Les deux types d'informations d'identification ne sont pas interchangeables. Pour en savoir plus sur l'obtention de vos informations d'identification SMTP, consultez [Obtention des informations d'identification SMTP Amazon SES](smtp-credentials.md).

## Test de votre connexion à l'interface SMTP Amazon SES
<a name="send-email-smtp-client-command-line-testing"></a>

Vous pouvez utiliser la ligne de commande pour tester votre connexion à l'interface SMTP Amazon SES sans vous authentifier ni envoyer de messages. 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](troubleshoot-smtp.md).

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

------
#### [ Linux, macOS, or Unix ]

Il existe deux façons de se connecter à l'interface SMTP Amazon SES avec OpenSSL : à l'aide du protocole SSL explicite sur le port 587 ou à l'aide du protocole SSL implicite sur le port 465.

**Pour vous connecter à l'interface SMTP à l'aide du protocole SSL explicite**
+ Sur la ligne de commande, tapez la commande suivante afin de vous connecter au serveur SMTP Amazon SES :

  ```
  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* par l'URL du point de terminaison SMTP Amazon SES pour votre AWS région. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

  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 le protocole SSL implicite pour vous connecter à l'interface SMTP via le port 465.

**Pour vous connecter à l'interface SMTP à l'aide du protocole SSL implicite**
+ Sur la ligne de commande, tapez la commande suivante afin de vous connecter au serveur SMTP Amazon SES :

  ```
  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* par l'URL du point de terminaison SMTP Amazon SES pour votre AWS région. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

  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](https://docs.microsoft.com/en-us/powershell/module/nettcpip/test-netconnection) PowerShell pour vous connecter au serveur SMTP Amazon SES.

**Note**  
L'applet de commande `Test-NetConnection` peut déterminer si votre ordinateur peut se connecter au point de terminaison SMTP Amazon SES. Toutefois, il ne teste pas si votre ordinateur peut établir une connexion SSL implicite ou explicite au point de terminaison SMTP. Pour tester une connexion SSL, vous pouvez installer OpenSSL pour Windows pour envoyer un e-mail de test.

**Pour vous connecter à l'interface SMTP à l'aide de l'applet de commande `Test-NetConnection`**
+ Dans PowerShell, entrez la commande suivante pour vous connecter au serveur SMTP Amazon SES :

  ```
  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* par l'URL du point de terminaison SMTP Amazon SES pour votre AWS région, puis *587* par le numéro de port. Pour en savoir plus sur les points de terminaison régionaux dans Amazon SES, consultez [Régions et Amazon SES](regions.md).

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

------

## Utilisation de la ligne de commande pour envoyer un e-mail via l'interface SMTP Amazon SES
<a name="send-email-using-openssl"></a>

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

------
#### [ Linux, macOS, or Unix ]

Lorsqu'un expéditeur d'e-mails se connecte à un serveur SMTP, le client émet un ensemble standard de demandes et le serveur répond à chaque demande avec une réponse standard. Cette série de demandes et de réponses est nommée *conversation SMTP*. Lorsque vous vous connectez au serveur SMTP Amazon SES à l'aide d'OpenSSL, le serveur attend une conversation SMTP.

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

**Pour envoyer un e-mail à partir de la ligne de commande à l'aide de l'interface SMTP**

1. Entrez ce qui suit sur la ligne de commande et remplacez-le *email-smtp.us-west-2.amazonaws.com* par l'URL du point de terminaison SMTP Amazon SES correspondant à votre Région AWS. Pour plus d'informations, consultez[Régions et Amazon SES](regions.md). :

   ```
    1. #!/bin/bash
    2. 
    3. # Prompt user to provide following information
    4. read -p "Configuration set: " CONFIGSET
    5. read -p "Enter SMTP username: " SMTPUsername
    6. read -p "Enter SMTP password: " SMTPPassword
    7. read -p "Sender email address: " MAILFROM
    8. read -p "Receiver email address: " RCPT
    9. read -p "Email subject: " SUBJECT
   10. read -p "Message to send: " DATA
   11. 
   12. echo
   13. 
   14. # Encode SMTP username and password using base64
   15. EncodedSMTPUsername=$(echo -n "$SMTPUsername" | openssl enc -base64)
   16. EncodedSMTPPassword=$(echo -n "$SMTPPassword" | openssl enc -base64)
   17. 
   18. # Construct the email
   19. Email="EHLO example.com
   20. AUTH LOGIN
   21. $EncodedSMTPUsername
   22. $EncodedSMTPPassword
   23. MAIL FROM: $MAILFROM
   24. RCPT TO: $RCPT
   25. DATA
   26. X-SES-CONFIGURATION-SET: $CONFIGSET
   27. From: $MAILFROM
   28. To: $RCPT
   29. Subject: $SUBJECT
   30. 
   31. $DATA
   32. .
   33. QUIT"
   34. 
   35. echo "$Email" | openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587
   ```

1. À l'invite correspondant à chaque variable, entrez vos valeurs.

1. 
   + Pour envoyer en utilisant le protocole SSL implicite sur le port 465, utilisez :

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

   Si le message est accepté par Amazon SES, vous voyez une sortie similaire à 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. SmtpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient?view=netframework-4.8)classe pour envoyer un e-mail en utilisant un protocole SSL explicite 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 l'aide d'un protocole SSL explicite**

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

1. Modifiez le fichier créé lors de l'étape précédente comme suit :
   + Remplacez *sender@example.com* par l'adresse e-mail à partir de laquelle vous souhaitez envoyer le message.
   + Remplacez *recipient@example.com* par l'adresse e-mail à laquelle vous souhaitez envoyer le message.
   + *email-smtp.us-west-2.amazonaws.com*Remplacez-le par l'URL du point de terminaison SMTP Amazon SES de votre AWS région. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

1. Dans PowerShell, entrez la commande suivante :

   ```
   .\path\to\SendEmail.ps1
   ```

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

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

Vous pouvez également utiliser le [System.Web.Mail. SmtpMail](https://docs.microsoft.com/en-us/dotnet/api/system.web.mail.smtpmail?view=netframework-4.8)classe pour envoyer un e-mail en utilisant le protocole SSL implicite sur 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 l'aide du protocole SSL implicite**

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

1. Modifiez le fichier créé lors de l'étape précédente comme suit :
   + Remplacez *sender@example.com* par l'adresse e-mail à partir de laquelle vous souhaitez envoyer le message.
   + Remplacez *recipient@example.com* par l'adresse e-mail à laquelle vous souhaitez envoyer le message.
   + *email-smtp.us-west-2.amazonaws.com*Remplacez-le par l'URL du point de terminaison SMTP Amazon SES de votre AWS région. Pour de plus amples informations, veuillez consulter [Régions et Amazon SES](regions.md).

1. Dans PowerShell, entrez la commande suivante :

   ```
   .\path\to\SendEmail.ps1
   ```

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

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

------