Utilisation de curl pour envoyer un courriel
Comment puis-je utiliser le curl programme en ligne de commande 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 l'e-mail du contenu, cependant, quand je lance cette commande j'obtiens l'erreur suivante:
curl: (67) Access denied: 530
Est-il possible d'envoyer un e-mail à partir d'un compte qui est hébergé par un serveur personnel, toujours à l'aide de curl? Est-ce que le processus d'authentification plus facile?
- Ne pouvez-vous pas envoyer un email à travers un local (ou proche) serveur SMTP?
- En effet, j'ai pu, mais ce n'était pas la question.
- Il ne me surprend pas que Google interdit l'utilisation de leur serveur SMTP comme spam proxies...
- Je pense que c'est possible, je ne pense pas que j'ai ma syntaxe correcte. J'ai tenté de légères variations de ce que j'ai posté et ont obtenu des différents commentaires comme m'invite pour un mot de passe, mais l'e-mail ne parvient toujours pas...
- Je crois que Gmail vous demandera d'utiliser Oauth pour l'authentification. Ce ne sera pas facile avec curl. Vous pouvez voir Google Oauth la documentation developers.google.com/google-apps/gmail/xoauth2_protocol .
Vous devez vous connecter pour publier un commentaire.
mail.txt le contenu du fichier:
Informations supplémentaires:
Je suis en utilisant
curl
version 7.21.6 avec le support SSL.La
--insecure
interrupteur permet decurl
à effectuer "l'insécurité" les connexions SSLet les transferts. Voir cette ressources en ligne cette ressource en ligne pour les
de plus amples détails.
Il est considéré comme une mauvaise pratique de sécurité pour transmettre des informations d'identification de compte thru
arguments de ligne de commande. L'exemple ci-dessus est pour la démonstration seulement.
Vous devez vous activer l'accès pour moins d'applications sécurisées.
--netrc-file
paramètre, puis utilisez bash shell interne est exécuté de redirection. E. g.curl --netrc-file <(printf '%s' "${MY_CREDENTIALS}"
...bash
permettra de créer un descripteur de fichier pour nourrir les données d'identification, et (je pense) les données ne touche pas au disque.