全くの初心者ですが、メールサーバを構築しました。なんとか受信できているようなのですが、添付ファイル(jpg)を受信すると、メール文中にすべて文字で表示されてしまいます。添付ファイル名でサーバ上を検索しても、jpgファイルは見つかりません。何か設定が必要なのでしょうか。
添付ファイルを取り出して、自動加工を行いたいと考えているのですが、最初のところでつまずいています。よろしくお願いします。
OS: Redhat Linux9
MTA: Postfix
格納方法: Maildir
添付ファイルはメール本体の中にMIMEという形式で埋め込まれています。
ですから、これを解読して取り出す必要があります。
PerlとかPHPならMIMEを解析するモジュールとかあると思うので、それ使って受信メールを1件づつ処理する必要があるかと。
http://www.din.or.jp/~bigstone/cgilab/guide/mime1.html
MIME.pm - MIME decode and decode module
電子メールでは、添付ファイルは文字データにエンコードされていますので、ご質問の状況は正常です。
サーバ内に添付ファイルが出来るわけではありません。
添付ファイルを元に戻す(取り出す)には、MIMEモジュールなどを使い、メール内のデータをデコードしてやる必要があります。
詳しくは、URLをご参照ください。
ありがとうございます。もしよろしければ1番目の方のコメントに書いた質問にも答えて下さるとありがたいです。
添付ファイルを見ることができない。文字化けする
送信側が添付ファイルをエンコード(符号化)する方式と受信側がデコード(復号化)する方式が異なると、添付ファイルを見ることができません。添付ファイルが見れない場合や、文字化ける場合は、送信側のエンコード方式を確認してください。なお、ほぼ最新のメールソフトであれば、Base64形式に対応しておりますので、Base64形式で添付していただければ問題なく添付ファイルのやり取りができるようになるはずです。
【代表的なエンコード形式】
Base64・・・Windowsで主に使用される形式。
uuencode・・・UNIXで主に使用される形式。
Binhex・・・Macintoshで主に使用される形式。
また、メールソフトによっては添付ファイルのファイル名に日本語を使用すると文字化けすることもございますので、なるべく半角英数のファイル名をご利用下さい。
ありがとうございます。もしよろしければ1番目の方のコメントに書いた質問にも答えて下さるとありがたいです。
http://www.atmarkit.co.jp/fdotnet/dotnettips/047exif/exif.html
@IT:.NET TIPS デジカメ画像のExif情報を取得するには? - C#
> exifという情報がありますよね。あれを解析するには、このMIMEの状態で解析することが出来るのでしょうか。
デコードされた状態でExif情報を取り出すことは出来ません。
一度バイナリデータにエンコードする必要があります。
Exif情報の取り出し方はURLをご参照ください。
ありがとうございます!
ありがとうございます。jpgがそのままくるわけではないのですね。
すこし話は変わりますが、exifという情報がありますよね。あれを解析するには、このMIMEの状態で解析することが出来るのでしょうか。それとも一度jpgにしなければならないのでしょうか。