2009-11-19 7 views
0

Je souhaite envoyer un e-mail via un serveur SMTP distant. Comment cela peut-il être fait? Je vais envoyer l'e-mail à partir d'un script shell bash. J'utilise une machine Unix. uname -a retours:UNIX: Envoyer un e-mail à l'aide du serveur SMTP

Linux linux 2.4.21 BrandZ fake linux i686 athlon i386 GNU/Linux 

Répondre

2

contacter un serveur SMTP distant est directement généralement pas la façon dont cela est fait. Que, par exemple, si le serveur est temporairement indisponible? Le chemin le plus facile consiste à exécuter un serveur de messagerie local, tel que postfix, exim ou qmail, et à le configurer pour envoyer du courrier via un serveur distant. Ensuite, vous pouvez simplement utiliser la ligne de commande sendmail pour envoyer votre e-mail.

Postfix sur Ubuntu, je mets ce qui suit dans master.cf:

relayhost = [smtp.my-isp.com] 
smtp_generic_maps = hash:/etc/postfix/generic 

Vous devez la dernière ligne si votre serveur de messagerie de votre FAI exige que tout le courrier sortant provient de [email protected]. Ensuite, vous aurez également besoin/etc/postfix/générique comme ceci:

[email protected] [email protected] 

Ajouter d'autres variantes (par exemple [email protected]) si nécessaire.

1

La commande mailx peut être utilisée pour envoyer un courrier électronique de manière non interactive, , mais l'implémentation classique s'adresse à un agent de transport de courrier local. Il existe des MTA simples qui vont simplement envoyer des emails via un serveur SMTP distant, et n'accepteront aucun email local.

Une autre solution consiste à utiliser heirloom-mailx, (anciennement connu sous le nom nail je pense) qui prend en charge parler à un serveur SMTP directement au lieu d'utiliser un MTA local. Par exemple, vous pouvez l'appeler comme suit:

heirloom-mailx -S smtp=smtp.your-isp.com \ 
       -S [email protected] \ 
       -s "subject" <<EOM 
Hello, $name, 
This is an automatic reminder, sent out once a month, ... 
[the rest of your message] 
EOM 
0

Je ne sais pas si cela fonctionne encore .. mais vous pourriez Wanne utiliser telnet. au moins, vous devriez être capable d'écrire un bashscript en l'utilisant