我正在尝试构建一个解决方案,将附件从邮件传输到 FTP 文件夹。有什么建议可以解决此任务吗?
我的第一个想法是编写一个 shell 脚本,从 Cyrus /var/imap 文件夹中获取邮件,然后搜索邮件附件,最后将其写入 pdf 文件。由于这似乎不是解决这个问题的预期方法,因此可能有更好的方法。
答案1
使用 ripmime 和 cronjob 可以解决这个问题。Ripmime 是一种用于获取邮件的 MIME 部分的工具。您可以获取文本和附件并将其提取到文件夹中。使用 cronjob 可以启动一个 shellscript,该脚本会查看 Maildir 并为每个邮件启动 ripmime。
从以下位置安装 ripmimehttp://www.pldaniels.com/ripmime/
之后我使用这个 shellscript 来获取附件:
for file in /var/spool/cyrus/mail/x/user/username/*. ; do
echo "$file"
ripmime -i $file -d /home/username
rm $file
done
使用 crontab -e 您可以添加此任务:
*/1 * * * * sh /home/ftp-scripts.sh >> /var/log/ripmime_ftp.log
在 /var/spool/... 中收到邮件后,此脚本将调用 ripmime 并将附件提取到 ftp 目录。
答案2
我无法支持您想要的方式!电子邮件不是用来发送文件的。请参阅此问题及其答案:为什么我们仍然有这么小的电子邮件附件文件大小限制?
FTP 已经用于文件传输。因此,不要将文件包装在邮件中以进行传输。如果您不想通过 FTP 传输文件,请寻找其他方式。但不要使用电子邮件。