如何在Linux中使用sendmail命令发送电子邮件

10

我尝试了以下两个命令。

1.

From: mail_id
To: Recipient_mail_id
Hi, this is my message, and I'm sending it to you!
.
echo "My message" | sendmail -s subject Recipient_mail_id

但是没有收到任何邮件发送到收件人的邮箱地址。
SMTP服务器安装在另一台服务器上,并且正常运行。所以有人可以帮我解决如何通过sendmail或smtp命令通过该SMTP服务器发送测试邮件吗?

SO是一个编程问答平台,这个问题与编程无关。关于操作系统、其实用程序、网络和硬件的问题,在这里是不适合的。请删除此问题,并在Unix & Linux Stack Exchange或https://superuser.com/上提问。 - Rob
SO是一个编程问答平台,而这个问题并不涉及编程。关于操作系统、实用工具、网络和硬件的问题,在这里都是不适合的。在这里可以问什么样的问题? 请删除这个问题,并在Unix & Linux Stack Exchange 或者 https://superuser.com/ 上提问。 - undefined
2个回答

15

1. 使用 sendmail 命令:

创建一个包含电子邮件内容的文件:

$ cat /tem/email.txt

Subject: Terminal Email Send
Email Content line 1
Email Content line 2

现在使用以下命令发送电子邮件:

$ sendmail user@example.com < /tem/email.txt

2. 使用mail命令:
$ mail -s "Test Subject" user@example.com < /dev/null

此外,您可以使用此命令发送附件。对于mailx,请使用-a,对于mailutils,请使用-A
$ mail -a /opt/file.sql -s "Backup File" user@example.com < /dev/null

另外,我们还可以添加逗号分隔的电子邮件地址,以便将邮件同时发送给多个收件人。
$ mail -s "Test Email" user@example.com,user2@example.com < /dev/null

3. 使用 mutt 命令:
$ mutt -s "Test Email" user@example.com < /dev/null

发送一封包含附件的电子邮件
$ mutt -s "Test Email" -a /opt/backup.sql user@example.com < /dev/null

我想在命令中使用SMTP服务器的主机名和端口。如何使用? - Gayathri K
这将会帮助你:echo "这是消息正文,包含消息内容" | mailx -v -r "someone@example.com" -s "这是主题" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="someone@example.com" -S smtp-auth-password="abc123" -S ssl-verify=ignore yourfriend@gmail.com - Kundan Singh

6

sendmail期望以“原始”格式发送电子邮件。通常最好使用更高级的命令(例如mail)。

MTA/SMTP服务器(如postfix/exim/…)和类似msmtp的程序也提供了类似于“sendmail”的命令。基本的sendmail命令行选项是事实上的标准,因此对于发送简单电子邮件可能是一个不错的选择。

您可以尝试以下shell脚本:

#!/bin/sh

# sendmail command line optons:
# -i - do not treat lines starting with dot specially
# -t - read recipients lists from message headers: TO,CC,BCC
# -v - use verbose mode (describe what is happening) 
#
# The empty line separates mail headers from mail body

/usr/sbin/sendmail -i -t << MESSAGE_END
From: john.doe@examle.net 
To: jane.doe@example.com

Hi, this is my message, 
and I'm sending it to you! 
MESSAGE_END

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接