设置邮件服务器并将附件保存在特定位置

设置邮件服务器并将附件保存在特定位置

一个客户只能通过电子邮件向我发送他们的数据文件,因此我想从电子邮件中获取附件,并在电子邮件到达时或一天中的某个时间自动将其放置在该位置。如何在 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

您可以在接收用户上配置多种方法。两种常见的方法是.forwardprocmail程序。

.forward文件可以执行程序来处理收到的邮件。如果需要处理该用户的所有邮件,这将非常有用。您可能需要将该程序添加到可在文件中运行的已批准程序列表中.forward

我使用procmail它来处理特定文件,并正常传递其他消息。可以创建副本并处理它,同时正常传递消息。

相关内容