我正在尝试使用Cygwin从命令行发送电子邮件。这就是我所说的:
email -f [email protected] -s "This is a test" -b [email protected]
我收到此错误消息:
/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: [email protected]\nSubject: mySQL Upload\nSQL files from machines uploaded to log table successfully.' | sendmail -f [email protected] [email protected]"
即使Cygwin在我的Windows路径中,也无法识别它,所以我必须直接运行bash.exe并说“将此命令作为Linux命令”。回声就是构建电子邮件本身的内容。 \ n字符将其分为“To”,“Subject”和Body。
显然,email
是一个程序,它允许您提交依赖于另一个程序实际发送消息(Mail Submission Agent)的电子邮件(Mail Transfer Agent)。
我上周在Cygwin上安装了这个。我没有使用email
,而是mutt
,Cygwin提供的替代品之一(请参阅其package list)。我使用mutt
不仅要提交要发送的邮件,还要阅读它;它是Mail User Agent(参见一些screenshots)。
像email
一样,mutt
依靠邮件传输代理来发送邮件,所以我必须安装一个邮件。在Linux上,流行的选择是sendmail
和postfix
;但他们所做的远远超过你的需要,而且Cygwin没有将它们作为包装提供。它确实提供exim
和ssmtp
。
我安装了ssmtp
包并运行了ssmtp-config
实用程序。你必须在这里做出一些决定。您必须知道可以使用哪个SMTP服务器,以及是否需要任何特殊配置才能与之通信。
顺便说一句,ssmtp
确实安装了一个名为sendmail
的可执行文件,它不是原始的sendmail
,但是出于你需要它的目的而表现得像。
好吧所以我第一次尝试时并不清楚......我想这是我的错,我会尽力让这个更清楚。
在mail-config中,它会询问sendmail二进制文件。听起来应该是这样的:
Please enter the sendmail command line [/usr/sbin/sendmail -t -i]:
这基本上是询问sendmail二进制文件的安装位置以及我应该传递哪些参数来发送邮件。您的sendmail二进制文件未安装或未安装在您指定的位置。
看看你是否安装了sendmail试试
%sendmail;
如果可行,请找到该二进制文件的路径
%which sendmail;
如果这不起作用,则不安装sendmail,或者需要将sendmail的位置附加到env路径变量。关于如何进行设置没有正确的答案,但是使这项工作的最低要求是在当前机器上安装sendmail,配置它并将正确的绝对路径传递给mail-config中的邮件程序。