web-dev-qa-db-fra.com

Envoi d'e-mails à partir d'un hôte SMTP existant à partir d'Ubuntu Server

J'ai le sentiment que mon problème est très simple, mais j'essaie depuis un certain temps et je ne l'ai pas résolu. Vous avez probablement déjà fait rire les serveurs, mais je suis enfin au point d’avoir besoin d’aide, sinon je n’arriverai jamais.

J'ai une petite boîte fonctionnant sous 12.04 LTS et je souhaitais écrire quelques vérifications de statut et que le serveur m'envoie un courrier électronique et le planifie avec cron.

En gros, je veux un client de messagerie en ligne de commande que je peux configurer aussi facilement que Thunderbird pour envoyer via mon SMTP existant via la ligne de commande. Quelque chose qui peut facilement être intégré dans mes scripts bash.

J'ai déjà un hôte distant qui gère notre courrier électronique, SMTP, MTA, tout ce bazar. Je ne souhaite pas particulièrement configurer un relais uniquement pour envoyer un courrier électronique lorsque j'en ai un que tous les autres employés de l'entreprise utilisent déjà. J'ai essayé, mais il y a trop d'aspects que je ne comprends pas ET je ne vois pas pourquoi je devrais installer quelque chose de local alors que nous payons déjà un hôte distant pour faire ces choses.

Si je dois absolument configurer sendmail ou postfix, alors qu’il en soit, mais j’apprécierais une alternative simple. Je suis ouvert à pratiquement n'importe quoi à ce stade.

1
ezgoodnight

Si vous voulez dire que vous envoyez des courriers électroniques via un serveur SMTP tiers (fourni par votre fournisseur d’accès Internet, par exemple), vous pouvez installer ssmtp, qui remplace directement Postfix/Sendmail mais est spécialisé. d’envoyer des messages via un serveur SMTP distant, et est donc beaucoup plus facile à configurer. Vous pouvez ensuite envoyer un e-mail avec la commande mailx, par exemple:

echo "Mail." | mailx -s "Subject" [email protected]

EDIT: E-mail est une entreprise très compliquée ... Quelques points à garder à l'esprit:

Notez que la commande ci-dessus ne spécifie pas d'adresse d'expéditeur ( c'est-à-dire , l'adresse que le destinataire verra dans le champ "De" de son adresse électronique. client). Par défaut, l'adresse de l'expéditeur est votre nom de connexion sur votre machine locale, suivi de @, suivi du nom d'hôte complet de la machine locale. Par exemple sur ma machine, le nom de connexion est firas et le nom d'hôte est nomo:

firas@nomo ~ % whoami firas firas@nomo ~ % hostname -f nomo

ainsi, lorsque j'enverrai un courrier électronique avec la commande ci-dessus, l'adresse de l'expéditeur sera firas@nomo, comme on peut le voir à partir de mail.log:

firas@nomo ~ % tail -n 3 /var/log/mail.log Jun 9 20:37:46 nomo sSMTP[2203]: Creating SSL connection to Host Jun 9 20:37:48 nomo sSMTP[2203]: SSL connection using RSA_AES_128_CBC_SHA1 Jun 9 20:37:50 nomo sSMTP[2203]: Sent mail for firas@nomo (221 2.0.0 esmtp3.es.uci.edu closing connection) uid=1000 username=firas outbytes=364

La grande majorité des serveurs refuseront de relayer cet e-mail (en tant que mesure anti-spam), car le nom de domaine nomo n'est pas un domaine valide. Heureusement, il existe une option dans ssmtp.conf qui permet de spécifier un domaine arbitraire, que sSMTP utilisera lors de l'envoi de courrier. À savoir, ceci est l'option rewritedomain, donc si j'ai ceci dans mon ssmtp.conf:

rewriteDomain=fkraiem.org

alors l'adresse de l'expéditeur sera [email protected].

Normalement, ce qui précède devrait suffire (c'est-à-dire que tant que votre adresse d'expéditeur a un domaine valide, le serveur doit relayer votre courrier). Cependant, certains fournisseurs de messagerie sont extrêmement zélés et ne vous permettront d'utiliser que l'adresse de messagerie que vous avez enregistrée auprès d'eux. Cela signifie qu'en plus de changer le nom de domaine comme ci-dessus, vous devrez peut-être changer votre nom de connexion sur la machine locale ou enregistrer une nouvelle adresse auprès de votre fournisseur (s'il le permet), de sorte que l'adresse finale corresponde à votre nom. adresse enregistrée.

Une autre façon de spécifier une adresse d'expéditeur arbitraire consiste à définir l'option fromlineoverride de ssmtp.conf sur YES, puis à utiliser l'option -a de mailx:

echo "Mail." | mailx -s "Subject" -a 'From: [email protected]' [email protected]

Ceci est toutefois non standard et pourrait ne pas fonctionner sur des systèmes d'exploitation autres qu'Ubuntu (et d'autres systèmes basés sur GNU). On peut également utiliser d'autres clients plus sophistiqués, tels que mutt.

1
fkraiem

Avez-vous envisagé sendemail ? (sendEmail)

Description-fr: léger, client de messagerie SMTP en ligne de commande

2
AnFi