s-nail添付ファイルを強制的にbase64にエンコードする方法は?

s-nail添付ファイルを強制的にbase64にエンコードする方法は?

私がすることは、CSVファイルをインポートして外部メールサービスを介して送信することです。 1つの例外を除いて、すべてが大丈夫だった。 WindowsスタイルのCRLF CSVファイルがプロセスで破損しており、メールクライアントで開いたときに各行の末尾に3つの0x0A文字があることがわかりました。

ファイルをBase64エンコーディングで強制するのは簡単だと思いました。 MIME設定では、コンテンツの種類を変更できますが、ペイロードをBase 64に変換することはできません。

echo "CSV files attached:" | s-nail -vv -Smimetypes-load-control -X'mimetype "application/octet-stream csv"'  -r [email protected] -s "Your CSV file" -a /data/review/fun.csv  -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="yourmom" -S smtp="corgibutts.com:587" "[email protected]"

誰でもこれを達成する方法を知っていますか?

ベストアンサー1

私はmac / unix行の終わりが壊れておらず、それを受け入れることができる最後に切り替えたことを発見しました。

著者は私の質問に答えてこれを自分のメーリングリストに投稿し、パッチは約3ヶ月後に広くリリースされる予定です。

今日はこのようなものを実装しましたが、v14.10(希望クリスマス頃)。

プレフィックス!を追加してBase64文字セット仕様を適用できます。

-a file[=[!]input-charset[#[!]output-charset]], --attach=.. (転送モード) チルダ拡張の影響を受けるファイルを添付します (ファイル名の変換とフォルダ参照) 。作成モードでは、COMMAND ESCAPES〜@、特にスクリプト可能な〜^は、ファイルの添付に代わるものを提供します。

ファイルにアクセスできないが等号が含まれている場合、=文字セット仕様は分割されます。入力が1つだけ与えられると、入力は固定され、変換は適用されません。空または特殊文字列のハイフン減算 - は ttycharset を表します。出力が提供されると、ファイルの種類や内容に関係なく即座に変換が行われます。ただし、空の文字列またはハイフン減算 - デフォルトの文字セット変換を強制します(-a file、-a file =#、および-a file = -#-同じ)、後でMIMEカテゴリファイル(HTMLメールとMIME)、mime.typesファイル後ろに添付ファイルを適用します。 、+iconvがない場合は、その機能でのみこのモードを使用できます。添付ファイルの base64 MIME エンコーディングを強制するために、文字セット名の前に感嘆符 "!" を付けることができます。

彼のメーリングリストに会話があります。まだ彼の最近の答えを見ていませんが、最終的にはbase64エンコーディングスレッドで見つけることができます。

https://lists.sdaoden.eu/pipermail/s-mailx/2022-September/thread.html

おすすめ記事