私の添付ファイルへのリンクを持つように私のメールを事前に奪う方法

StackOverflow https://stackoverflow.com/questions/7385694

  •  29-10-2019
  •  | 
  •  

質問

私はメールクライアントとしてSSHを介してMuttを使用しています。これはうまく機能しますが、添付ファイル(ほとんどの画像)を見るのは少し面倒です。ここで、私のアイデアは、メールを解析し、添付ファイルをサーバーに保存し、添付ファイルにアクセスするためのURLを作成し、このURLをメール内に配置することです。誰かがすでにこれをやったことがありますか?これを達成するための簡単な方法は何ですか?

私はすでにProcmailを使用していますものをフィルタリングしていますが、それを使用してテキストをメールに挿入できますか?

ありがとう

役に立ちましたか?

解決

できますよ。ただし、Mimeに対する直接的なサポートはないため、処理しているメッセージのMime構造を台無しにしないようにするために、多かれ少なかれ賢いものが必要です。

簡単な開始例として、あなたが添付ファイルを抽出したと仮定します ~/public_html/prv/att000.jpg そして、あなたのWebサーバーにこれを提供するように設定してもらう http://localhost:8080/~you/prv/att00.jpg, 、このようなヘッダーを追加できます。

:0fhw
| formail -I"X-Tracted: http://localhost:8080/~you/prv/att00.jpg"

メッセージ自体に何かを追加するのは難しいですが、私の意味は不可能です。

編集: スクリプトは、一時的なファイルを使用しないように簡素化できます(およびbyによって、倍数を避けることができます 猫の役に立たない使用)レシピ内からメッセージ-IDを抽出する場合:

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

...しかし、おそらく(役に立たない猫なしで)スクリプトを保持し、それを変更して、添付ファイルを抽出するだけでなく、標準出力に変更されたメッセージを作成して、添付ファイルにリンクしてリンクされていることを確認したいと考えています。

3つのオプションを提案できますが、そのすべてが少し面倒です。受信メッセージが(MultiPart/Mixed(Text/Plain(MultiPart/関連テキスト/HTMLイメージ/PNG画像/PNG/PNG))であると仮定します);あなたは出来る

  1. メッセージを(MultiPart/関連(テキスト/プレーン:リンクのリスト」(こちらのリンク)(メッセージ/RFC822:元のメッセージこちら:( MultiPart/Mixe)(Text/Plain(MultiPart/関連テキスト/HTML画像/PNG)) )))。これは、元のメッセージをまったく解析する必要はありませんが、ほとんどのクライアントで見るのは厄介です。

  2. 常にテキスト/プレーン部分があると仮定し、リンクのリストをその最後に添付します。これには、最初のテキスト/プレーン部分を見つけて拡張するためのロジックと、最初の部分としてテキスト/プレーン部分がない場合は何らかのフォールバックが必要です。

  3. すべてのメッセージがMultiPart/*であると仮定し、最初の部分として、または最初のテキスト/プレーンパートの直後に、最初の近くにテキスト/プレーン部分を追加するだけです。これには同じロジックが必要であり、一部のクライアントで見るのは厄介かもしれませんが、着信メッセージに関する仮定が少なくなるため、より安全になる可能性があります。

これをコーディングできれば、Procmailを呼び出すことは非常に簡単です。省略してください h 以前のレシピのフラグ(ヘッダーでのみフィルターをかけるように指定)。

:0fw
| replace-entire-message-with-a-different-message

他のヒント

現時点で私はこれを持っています:

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

ですから、私がしなければならない唯一のことは、メールからメッセージ-IDを取得してURLを作成することです。

Tripleeが示唆したように、私はこのURLをヘッダーとして追加できました。

メッセージにリンクがある場合は素晴らしいことです。多分私はそれをもう一度やるでしょう。現時点では、私はこの解決策で大丈夫です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top