一个客户只能通过电子邮件向我发送他们的数据文件,因此我想从电子邮件中获取附件,并在电子邮件到达时或一天中的某个时间自动将其放置在该位置。如何在 Linux 上设置邮件服务器并执行上述操作?
答案1
你可以使用ripMIME(或其他类似工具)作为mailbox_command
在 Postfix 中。
ripMIME -i <mime file> -d <directory> [-p prefix] [-e [header file]] [-vVh] [--version]
[--no_nameless] [--unique_names [--prefix|--postfix|--infix]][--paranoid]
[--mailbox] [--formdata] [--debug][--no-tnef] [--no-quotedprintable] [--no-uudecode]
Options available :
-i : Input MIME encoded file (use '-' to input from STDIN)
If <mime file> is a directory, it will be recursed
-d : Output directory
因此我会尝试(但尚未实际测试过)使用如下方法:
mailbox_command = /path/to/ripMIME - -d /tmp/attachments --prefix
如果这不起作用,另一种方法可以ripMIME
在作业中针对邮箱(或 Maildir)运行cron
,首先提取所有附件,然后删除邮箱文件,例如
ripMIME -i /home/mailuser/mail/Inbox -d /home/mailuser/attachments --prefix
rm /home/mailuser/mail/Inbox
提取后删除邮箱有助于避免从同一封邮件创建多个附件文件,同时--prefix
有助于避免覆盖现有附件(如果您的客户端在另一天使用相同的文件名)。
答案2
您可以在接收用户上配置多种方法。两种常见的方法是.forward
和procmail
程序。
该.forward
文件可以执行程序来处理收到的邮件。如果需要处理该用户的所有邮件,这将非常有用。您可能需要将该程序添加到可在文件中运行的已批准程序列表中.forward
。
我使用procmail
它来处理特定文件,并正常传递其他消息。可以创建副本并处理它,同时正常传递消息。