Envoyer du courrier via un proxy HTTP avec curl
Vérifiez les autorisations CONNECT, le TLS SMTP et les identifiants distincts du proxy et du service de messagerie avant de tenter un envoi.
Un proxy HTTP peut transporter une connexion SMTP s'il autorise un tunnel CONNECT vers le port du serveur de messagerie. Cette autorisation compte davantage que le fait qu'une page web se charge via le même proxy.
Un envoi via SMTP avec STARTTLS a cette forme générale :
curl --proxy http://203.0.113.10:8080 --proxytunnel \
--url smtp://mail.example.com:587 --ssl-reqd \
--user mail-user \
--mail-from [email protected] \
--mail-rcpt [email protected] \
--upload-file message.eml
Les adresses sont des exemples. Utilisez un service de messagerie et un expéditeur que vous êtes autorisé à employer. curl demande le mot de passe lorsque l'option utilisateur ne contient que le nom d'utilisateur. Le fichier de message doit comporter des en-têtes de courrier appropriés, une ligne vide et un corps ; ce n'est pas seulement l'adresse du destinataire.
Attendez-vous à des connexions et des identifications distinctes
L'option de tunnel HTTP amène curl à demander au proxy une connexion vers la destination SMTP. Le proxy peut exiger ses propres identifiants via les options d'authentification de proxy de curl. Le service SMTP authentifie ensuite l'utilisateur de messagerie à l'intérieur de cette connexion.
--ssl-reqd exige la mise à niveau TLS pour cette URL SMTP. Laissez la vérification des certificats activée pour le nom d'hôte de messagerie prévu. Une authentification de proxy réussie ne garantit pas que le TLS ou l'identification de messagerie aboutiront.
De nombreux proxys HTTP génériques restreignent les ports CONNECT. Un refus du port 587 peut être une politique délibérée. Demandez une route approuvée plutôt que d'essayer à plusieurs reprises des ports sans rapport ou de considérer la restriction comme une panne.
Les services de messagerie peuvent aussi appliquer des autorisations d'expéditeur et des règles de soumission une fois la route fonctionnelle. Lisez la réponse SMTP. Un message rejeté après authentification demande une correction différente d'un tunnel rejeté avant l'arrivée du salut SMTP.