如何使用sendmail命令发送电子邮件?

时间:2018-03-10 07:55:34

标签: command sendmail

我在CentOS上安装了sendmail,但没有配置它并将其作为守护进程启动。我可以使用sendmail命令发送电子邮件,例如, sendmail admin@remotedomain.com< ./myemailcontent 我对这个命令没有运气。它似乎连接到127.0.0.1然后超时。 我认为sendmail将连接到远程smtp服务器(remotedomain.com)以传递电子邮件,但它似乎使用本地smtp服务器来中继电子邮件。如何使用sendmail发送电子邮件?

2 个答案:

答案 0 :(得分:1)

sendmail是发送电子邮件的“低级”工具/命令。它期待“原始”电子邮件 考虑使用更高级别的工具,例如mail

如果您想发送简单的电子邮件并更喜欢可移植性,请查看以下脚本:

#!/bin/sh
# sendmail or "sendmail look alike" provided by postfix/exim/...
SENDMAIL=/usr/sbin/sendmail
## Or use custom "sendmail look alike" 
## e.g. msmtp which can send without local SMTP server
#SENDMAIL=/usr/bin/msmtp

TO=me@example.net

$SENDMAIL -i -- $TO <<END_OF_EMAIL
Subject: My test message subject
To: $TO
X-Comment: Use empty line to separate email headers from email body

My test message body
END_OF_EMAIL

答案 1 :(得分:0)

要使用发送邮件,您首先需要安装后缀:

>> sudo apt-get install postfix

您必须通过运行>> dpkg-reconfigure postfix并按照您的说明来配置后缀设置。然后运行>> service postfix reload来运行服务。

注意:/usr/sbin/sendmail使用sendmail命令作为别名。您实际上可以通过输入which sendmail来解决。因此,您无需输入文件名,而只需输入sendmail:)


要使用sendmail

示例

>> sendmail recipient@whatever.com
Subject: Subject Line
... Email Body Here ...

然后在新行上按CTRL+D,这将发送电子邮件

如果您发现电子邮件运行缓慢或无法正常工作,则此链接可以很好地说明操作方法:https://www.digitalocean.com/community/questions/sendmail-is-slow-to-send-mail


如果要为sendmail添加文件附件,我建议uuencode。要使用它,您需要安装:

>> sudo apt install sharutils

uuencode将文件编码为电子邮件友好文本(https://linux.die.net/man/1/uuencode

示例

uuencode /path/to/file.txt /path/to/file.txt | sendmail "recipient@whatever.com"

请记住,/path/to/file.txt必须放置两次,因为它需要一个输入文件和一个输出,否则它将在下面运行命令行条目。