2009-11-19 80 views
0

我想通过远程SMTP服务器发送电子邮件。如何才能做到这一点?我将从bash shell脚本发送电子邮件。UNIX:使用SMTP服务器发送邮件

我正在使用unix机器。 uname -a回报:

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

回答

2

直接接触远程SMTP服务器通常不这样做的方式。例如,如果服务器暂时不可用?

更简单的方法是运行本地邮件服务器(如postfix,exim或qmail),并将其设置为通过远程服务器发送邮件。然后,您可以使用命令行sendmail发送您的电子邮件。

在Ubuntu的后缀,我把master.cf如下:

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

您需要的最后一行的情况下,你的ISP的邮件服务器要求所有外发邮件从[email protected]起源。然后,你还需要在/ etc /后缀/通用这样的:

[email protected] [email protected] 

添加其他变体在必要时(如[email protected])。

1

mailx命令可用于非交互式发送电子邮件, 但经典实现与本地邮件传输代理进行通信。 有简单的MTA,它只会通过远程SMTP服务器发送电子邮件, ,并且不会接受任何本地电子邮件。

另一种解决方案是使用heirloom-mailx, (以前称为nail我觉得) 它支持聊天到SMTP服务器,而不是直接使用本地MTA。 例如,你可以按照以下方式调用它:

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

我不知道它是否仍然有效..但你可能wanne使用Telnet。至少你应该可以用它写一个bash脚本

相关问题