Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何预处理我的电子邮件以获得指向我的附件的链接_Email_Procmail_Mutt - Fatal编程技术网

Email 如何预处理我的电子邮件以获得指向我的附件的链接

Email 如何预处理我的电子邮件以获得指向我的附件的链接,email,procmail,mutt,Email,Procmail,Mutt,我正在使用mutt over ssh作为我的邮件客户端。这非常有效,但是查看附件(主要是图像)有点烦人。现在我的想法是解析电子邮件,将附件存储在我的服务器上,创建一个用于访问附件的URL,并将此URL放入电子邮件中。已经有人这样做了吗?实现这一目标的简单方法是什么 我已经在用procmail过滤东西了,我可以用它在我的电子邮件中插入文本吗 谢谢当然可以。但是,没有对MIME的直接支持,因此您可能需要一些或多或少聪明的东西来确保您不会弄乱正在处理的消息的MIME结构 作为一个简单的开始示例,假设您

我正在使用mutt over ssh作为我的邮件客户端。这非常有效,但是查看附件(主要是图像)有点烦人。现在我的想法是解析电子邮件,将附件存储在我的服务器上,创建一个用于访问附件的URL,并将此URL放入电子邮件中。已经有人这样做了吗?实现这一目标的简单方法是什么

我已经在用procmail过滤东西了,我可以用它在我的电子邮件中插入文本吗


谢谢

当然可以。但是,没有对MIME的直接支持,因此您可能需要一些或多或少聪明的东西来确保您不会弄乱正在处理的消息的MIME结构

作为一个简单的开始示例,假设您提取了
~/public\u html/prv/att000.jpg的附件,并将web服务器设置为在
http://localhost:8080/~you/prv/att00.jpg
,您可以添加这样的标题

:0fhw
| formail -I"X-Tracted: http://localhost:8080/~you/prv/att00.jpg"
在消息本身添加一些内联内容是困难的,但我的建议并非不可能

编辑:如果您从配方中提取消息Id,您的脚本可以简化为不使用临时文件(顺便说一句,避免使用多个文件):

# Whitespace in [square brackets] is tab, space
:0c
* ^Message-Id:[   ]*<\/[^@>]+
| (mkdir -p "webserver path"/"$MATCH"; munpack -C "webserver path"/"$MATCH" )

目前,我有以下几点:

在procmail中,我复制了如下内容:

:0c
| myscript.sh
然后在myscript.sh中

path="webserver path"

tee _temp >& /dev/null # is there a different way of doing this?

# extract message-id
mid=$(cat _tempmail | formail -c -x message-id - | sed 's/ <\(.*\)@.*>/\1/')

mkdir $path/$mid

# extract all attachments into directory depending on the message id
cat _tempmail | munpack -C $path/$mid
path=“Web服务器路径”
tee _temp>&/dev/null#是否有其他方法来实现这一点?
#提取消息id
mid=$(cat | tempmail | formail-c-x邮件id-| sed's/\1/)
mkdir$path/$mid
#根据邮件id将所有附件提取到目录中
cat | tempmail | munpack-C$path/$mid
所以我唯一要做的就是从邮件中获取消息id并创建我的url

根据tripleee的建议,我可以将此url添加为标题


如果邮件中有链接那就太好了,也许我以后会这样做。目前,我对这个解决方案很满意。

如果您能向我们展示您目前所拥有的,也许从这里开始会更容易。你已经有了解析MIME结构和提取附件的工具了吗?谢谢你的建议。但是,这样的头在所有其他头中都有点隐藏。。我将在回答中描述到目前为止我所掌握的情况。编辑我的回答以纳入您提供的信息。假设您的意思是
cat
,其中有
tee
,临时文件的名称是
\u tempmail
,而不是
\u temp
path="webserver path"

tee _temp >& /dev/null # is there a different way of doing this?

# extract message-id
mid=$(cat _tempmail | formail -c -x message-id - | sed 's/ <\(.*\)@.*>/\1/')

mkdir $path/$mid

# extract all attachments into directory depending on the message id
cat _tempmail | munpack -C $path/$mid