3

我正在尝试使用 Cygwin 从命令行发送电子邮件。这就是我要输入的内容:

email -f myaddress@blah.com -s "This is a test" -b toaddress@blah.com

我收到此错误消息:

/bin/sh: /usr/lib/sendmail: No such file or directory

我在 /usr/lib 中创建了一个名为“sendmail”的文件夹,现在我得到了这个:

/bin/sh: /usr/lib/sendmail: is a directory

有人可以一步一步告诉我如何从 Cygwin 发送电子邮件吗?喜欢如何设置它和一切?我到处看了看,我正准备把头发扯下来。

编辑:谢谢你们的回复。这就是我最终让它工作的方式。

bash.exe -c "echo  -e 'To: thepeopleimsendingitto@blah.com\nSubject: mySQL Upload\nSQL files from machines uploaded to log table successfully.' | sendmail -f me@blah.com otherpeople@blah.com"

即使 Cygwin 在我的 Windows 路径中,它也无法识别它,所以我不得不直接运行 bash.exe 并说“将此命令作为 Linux 命令执行”。回声是构建电子邮件本身的内容。\n 字符将其分为“收件人”、“主题”和正文。

4

2 回答 2

6

显然,email是一个让您提交电子邮件消息(邮件提交代理)的程序,该程序依赖于另一个程序来实际发送邮件(邮件传输代理)。

我上周在我的 Cygwin 安装中启用了这个。我没有使用,email但是muttCygwin 提供的替代方案之一(请参阅它的包列表)。我mutt不仅用于提交要发送的邮件,还用于阅读;它是一个邮件用户代理(见一些截图)。

就像emailmutt依靠邮件传输代理来发送邮件,所以我不得不安装一个。在 Linux 上,流行的选择是sendmail and postfix; 但它们所做的远远超出了您的需要,并且 Cygwin 不将它们作为软件包提供。它确实提供eximssmtp

我安装了ssmtp软件包并运行了该ssmtp-config实用程序。你必须在这里做出一些决定。您必须知道可以使用哪个 SMTP 服务器以及是否需要任何特殊配置才能与其通信。

顺便说一句,ssmtp确实安装了一个名为 的可执行文件sendmail,它不是原始的sendmail,但出于您需要的目的,它的行为与它相似。

于 2012-12-13T18:13:38.240 回答
1

好的所以我第一次尝试时不够清楚......我想这是我的错,我会尽量让这一点更清楚。

在邮件配置中,它会询问 sendmail 二进制文件。听起来应该是这样的:

Please enter the sendmail command line [/usr/sbin/sendmail -t -i]:

这基本上是在询问 sendmail 二进制文件安装在哪里以及我应该传递什么参数来发送邮件。您的 sendmail 二进制文件要么未安装,要么未安装在您指定的位置。

要查看您是否安装了 sendmail,请尝试

%sendmail;

如果可行,请尝试查找该二进制文件的路径

%which sendmail; 

如果这不起作用,则说明 sendmail 未安装,或者 sendmail 的位置需要附加到 env 路径变量中。关于如何进行设置没有正确答案,但完成这项工作的最低要求是在当前机器上安装 sendmail,对其进行配置并将正确的绝对路径传递给 mail-config 中的邮件程序。

于 2012-12-13T14:50:42.723 回答