我正在设计一个系统,在某些时候需要发送电子邮件通知。所以我正在寻找一种简单的方法来做到这一点。一些背景:系统将在Linux平台上运行,网络上将有一个工作的SMTP服务器,运营商将配置其地址,服务器凭据(如果需要)和目标电子邮件地址列表(不,我不工作大众电子邮件系统;-)。需要发送电子邮件的过程可能用C编写,但超级性能并不是真正的要求,不会发送大量邮件,因此调用某些命令行工具是可以接受的选择。基本上,我过去尝试过类似的任务:
所以我需要的是基本上用于C语言的库或简单的命令行MUA,它应该能够与远程sendmail通信(即与我告诉它的SMTP服务器通信),但不要求本地邮件转发。
欢迎任何想法!
答案 0 :(得分:4)
邮件(1)或mailx(1)
此外,由于您有本地MTA,您可以将消息直接传送到sendmail(8)(尽管它的名称 - 是许多MTA用于注入邮件的标准接口)
答案 1 :(得分:1)
这是一个不错的SMTP库,libESMTP
答案 2 :(得分:0)
Perl的Mail::Mailer提供了一种通过本地MTA生成邮件的简单方法(例如来自perldoc -q mail):
use Mail::Mailer;
my $mailer = Mail::Mailer->new();
$mailer->open({
From => $from_address,
To => $to_address,
Subject => $subject,
}) or die "Can’t open: $!\n";
print $mailer $body;
$mailer->close();
如果你正在使用C,你可以使用Mail :: Mailer编写一个脚本包装器,或者直接通过shell调用MTA并将格式化的消息写入其中。
答案 3 :(得分:0)
很抱歉,但你要求的是不可能的。为了将邮件发送到另一个系统,您需要某种程序将邮件从一台计算机传输到另一台计算机。根据定义,这样的程序是MTA。
您不必使用Sendmail。你可以像其他海报试图告诉你的那样,使用更轻量级的东西。您所需要的只是可以充当SMTP客户端的东西。你甚至可以在你的程序中构建功能,但你仍然会得到基本上是MTA的东西。
答案 4 :(得分:0)