web-dev-qa-db-fra.com

Utilisation de curl pour envoyer des e-mails

Comment puis-je utiliser le programme de ligne de commande curl pour envoyer un e-mail à partir d'un compte gmail?

J'ai essayé ce qui suit:

curl -n --ssl-reqd --mail-from "<[email protected]>" --mail-rcpt "<[email protected]>" --url smtps://smtp.gmail.com:465 -T file.txt

Avec file.txt étant le contenu de l'e-mail, cependant, lorsque j'exécute cette commande, j'obtiens l'erreur suivante:

curl: (67) Access denied: 530

Est-il possible d'envoyer un e-mail à partir d'un compte hébergé par un serveur personnel, toujours en utilisant curl? Cela facilite-t-il le processus d'authentification?

38
NSNolan
curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
  --mail-from '[email protected]' --mail-rcpt '[email protected]' \
  --upload-file mail.txt --user '[email protected]:password' --insecure

contenu du fichier mail.txt :

From: "User Name" <[email protected]>
To: "John Smith" <[email protected]>
Subject: This is a test

Hi John,
I’m sending this mail with curl thru my gmail account.
Bye!

Information additionnelle:

  1. J'utilise curl version 7.21.6 avec prise en charge SSL.

  2. Le --insecure le commutateur permet à curl d'effectuer des connexions et transferts SSL "non sécurisés". Voir cette ressource en ligne cette ressource en ligne pour plus de détails.

  3. Il est considéré comme une mauvaise pratique de sécurité de transmettre les informations d'identification du compte via des arguments de ligne de commande. L'exemple ci-dessus est uniquement à des fins de démonstration.

  4. Vous devez activer l'accès pour les applications moins sécurisées.

72
bambam