如何从命令行通过 postfix 发送带有附件的电子邮件?

如何从命令行通过 postfix 发送带有附件的电子邮件?

我刚刚在 linode 上为自己设置了一个新的 Ubuntu 10.04 LTS 服务器。遵循了以下出色的说明:这里完成包括postfix在内的一些基本内容的安装。

我正在尝试找出一种方法来将带有附件的电子邮件发送到我的 gmail 地址,但找不到方法。已确认电子邮件可以到达我的 gmail 帐户。

最后我不得不使用 mutt 来发送带附件的电子邮件,可能发电子邮件也会做得很好,但我想知道如何从命令行在 Postfix 中做同样的事情?

提前感谢这个愚蠢的问题。

答案1

为什么必须postfix直接?mailx -a,,mutt或者mutt -a也会使用sendmail接口——除非为 SMTP 配置它们。

echo“这是一条测试消息”| mutt -s Test -a foo.zip -- $USER
echo“这是一条测试消息”| mail -s Test -a foo.zip $USER

(请注意,在 bsd-mailx 中该选项是-A相反的。)


无论如何,这是一个“后缀”示例。

替换$USER、内容类型和文件名以匹配您的环境。示例假设您正在向自己发送消息,并且foo.zip在当前目录中有一个 ZIP 文件。

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(创建 MIME 多部分消息留给读者作为练习。)

答案2

Postfix 是一个邮件传输代理 (MTA)。它的工作是处理邮件的投递:拾取邮件并将其发送到路线上的下一个点。Postfix 是一名邮政工作人员,其工作是接收信封并(在同事的帮助下)将其运送给收件人。

你在这里要求的是秘书工作:整理文件,把它们放进信封里。这不是 Postfix 的工作:这是邮件用户代理 (MUA)。你可以写一个粗糙的 MUA,只需几行 shell 代码就可以组装邮件的各个部分,如下所示重力做到了,但 Mutt 确实是完成这项任务的好工具。

答案3

从命令行,我喜欢使用“sendemail”,在 ubuntu / debian 上可以从命令行安装,如下所示:

apt-get install sendemail

然后您可以简单地告诉它使用 localhost(Postfix)作为 MTA。

实际上我刚刚注意到 localhost:25 是默认值:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

然后使用 -a 标志添加附件:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip

答案4

邮箱12.4 有一个附加文件的选项:

-a 文件
    将给定的文件附加到消息。

例如:

[gawad@centos 桌面]$邮件 -s “pine” -a pine.rpm.gz root@localhostEnter
这是您要求的 Pine 软件Enter
Enter
终止时间
[gawad@centos 桌面]$

相关内容