muttを使用したマルチパート/代替の送信


12

特定の電子メールまたは受信者、あるいはその両方が送信前にスクリプトを実行するオプションを希望します(自動またはキーバインドを押すことによって)。このスクリプトを実行して、スクリプトを実行text/plainし、そのスクリプトの出力を次のtext/htmlタイプで添付します。、メッセージ全体をに設定しますmultipart/alternative

サイドランブル:これが送信の直前に自動的に発生するのは良いことですが、本文のタイプが現在に設定されている場合に限らtext/markdownれます。これは、保留中の電子メールがソースを再度編集する状態にならず、HTMLの再生成を忘れる状態になるためです。と私はまだ送信のみのオプションがありますtext/plain。次に、ボディのコンテンツタイプをに設定する別のバインディングを作成しtext/markdown、これが取得されるようにします。しかし、多くのメールクライアント(Gmailを含む)がtext/markdown(プレーンテキストとしても)レンダリングを拒否し、代わりにダウンロードとして提供するという問題もあるので、ソースパーツのコンテンツタイプを元に戻す必要があります。にtext/plain

muttでそのようなことは可能ですか?

悲しいことに、私が知る限り、muttはmultipart/alternativeメッセージの送信をサポートしておらずmultipart/mixed、それ以外の送信は拒否しますが、私は間違っていると示されたいのですが。

私が思いついた最善の解決策はこのマクロです:

macro compose M "<filter-entry>commonmark<return>y<edit-type><kill-line>text/html<return>" "convert message to HTML with Commonmark"

これにはいくつかの問題があります:

  • 元のプレーンテキストを完全に置き換えるため、編集がはるかに困難になります。
  • yマクロに、ファイルを上書きしてもよいかどうかを尋ねるダイアログで「はい」と言うのが好きではない
  • これが走った後、私はリターンを押さなければなりません
  • そしてもちろん、主なもの:それはプレーンテキストの代替を送信しません

より良い解決策はありますか?

限り、別のテキストモードのメールクライアントを開く可能性があります。

  • Google Appsで使用でき、フラグなどを双方向で同期します
  • GPGをサポート
  • vimのようなバインディングがあるか、それらを構成できます
  • vimをメッセージエディタとして使用できます
  • スレッド化されたメッセージビューを持っています
  • 多少洗練された方法(送信者、受信者、添付ファイルの有無、件名、本文の検索)でメールをフィルタリング/検索できます
  • 添付ファイルのタイプを少しmuttのように処理します。つまり、mailcapまたは同等のものなので、受信HTMLメールをlynxで実行したり、必要に応じて何かを押してグラフィカルブラウザーで開いたり、ボタンを押すだけで画像ビューアーを起動したりできます。

回答:


1

NeoMuttがマルチパートをサポートしていることを忘れていました。 https://neomutt.org/guide/mimesupport


よかった。あなたがリンクしたページは、マルチパート/代替を送信するためのサポートは初歩的であると述べましたが、すぐに試してみます。指摘してくれてありがとう。
19

Neomuttは通常のol 'muttのドロップイン代替品となるはずです。他のいいところは、明らかにかなり活発に開発されていることです。
Davey

この機能は1年前に追加されたようです:github.com/neomutt/neomutt/pull/734
tremby

それは素晴らしい働きをします。neomutt.org/guide/…に投稿したドキュメントで提案されているものと同様のマクロを作成しました。マクロを使用した後もEnterキーを押す必要があります。代替を生成した後、送信する前に変更しますが、そのうちすべてを理解します。multipart / alternativeをサポートする最初のバージョンは2018-05-12リリースですが、これはまだ私のディストリビューションにはありません。私はソースからコンパイルしました--gnutls --prefix/usr/local --tokyocabinet
tremby

-1
    #!/bin/bash

    cp $1 $1.tmp
    ##CHANGE OVERALL TYPE IN HEADER TO MULTIPART

    #HANDLE CONTENT-TYPE LINE IN HEADER
    if grep -q "Content-Type:" $1; then
            sed -i -e 's/Content-Type:.*?;/Content-Type: multipart\/alternative; boundary=boundary42/' $1.tmp
    else
            sed -i '1iContent-Type: multipart/alternative; boundary=boundary42' $1.tmp
    fi

    #EXTRACT HEADER AND BODY
    header="$(sed '/^$/q' $1.tmp)"
    body="$(sed -n -e '/^$/,$p' $1.tmp | tail -n +2)"

    #CREATE HTML VERSION
    HTMLbody="$(echo "$body" | commonmark)"

    #ADD HEADER
    echo "$header" > $1

    #START PLAIN TEXT
    echo -e "\n--boundary42\n" >> $1
    echo -e "Content-Type: text/plain; charset=us-ascii\n" >> $1
    echo "$body" >> $1

    #START HTML
    echo -e "\n--boundary42\n" >> $1
    echo "Content-Type: text/html; charset=UTF-8" >> $1
    echo "Content-Transfer-Encoding: quoted-printable\n" >> $1
    echo "$HTMLbody" >> $1

    echo -e "\n--boundary42--" >> $1

    msmtp $1

「「送信元」の電子メールアドレスごとに異なる署名を使用することは可能ですか」という質問に答えているようですが、これは私が尋ねた質問ではありません。これがマルチパート/代替メールの送信にどのように役立つかわかりません。
震え

回答を編集しました。これで、送信元と送信先の電子メールアドレスがチェックされ(「from」で何もしないように見えません)、ヘッダーが追加される可能性があります。しかし、これがマルチパート/代替メールの送信にどのように役立つかはまだわかりません。
19

あなたはおそらくこれを自分のニーズに合わせて調整する必要があるので、私はおそらくあなたのためにすべてを綴ることはできません。ただし、一般的な解決策は、エディターをスクリプトに設定して、エディターを呼び出し、ドラフトファイルを解析することです。
Davey

ドラフトファイルをどのように編集すると、muttがマルチパート/代替を送信できるようになりますか?ファイルの2つのバージョン、HTMLとプレーンテキストはどこにありますか?
19

commonmarkで変換する方法があるようです。これをsomeMultipartScript行に置き換えます。その時点での$ 1は平文です。そこで変換ツールを介して送信し、同じファイル名$ 1にパイプします。このスクリプトが終了すると、呼び出し側プログラム(mutt)にシグナルが送信され、エディターが閉じられます。この時点で、エディターは送信の準備ができているはずです。
Davey、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.