答案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 桌面]$