- ベストアンサー
wmvファイルをメールで送信するプログラム
表題のソースを組んでいます。base64でエンコードし、送信させるところまではできる ようになったのですが、受信してみるときちんと再生されません。メールソフトで添付 送信したメールを受信し、添付されたファイルと比較すると2Mのファイルが数10バイト 大きくなっているところまでは確認しました。base64のエンコードソース自体は、 ネットで公開されているエンコードアプリの結果と比較し、相違ないことを確認しました。 あとは、そのエンコード結果の最初とか最後に"=?","?="以外の文字をつけないと いけないとかそんなのかとおもうのですが、わかりません。どなたかご教授いただけ ないでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>そのエンコード結果の最初とか最後に"=?","?="以外の文字をつけないと >いけないとかそんなのかと それはヘッダ部分じゃないですか? Subjectヘッダとか、To・Fromヘッダとか。 ファイル名をどうエンコードしているのかは微妙ですが…。 # いくつかの型式があった…かと。 BASE64の場合、サイズがちょうど良くない時(3で割り切れない…だったかな)は 最後に'='を連続させて揃えた…かと。 ファイル単体をBASE64エンコードできるツールもあったと思われますのでそれらでのエンコード結果と比較してみる…でしょうかね。 # メール添付なら80文字くらいで改行されるかと思いますが…。 >メールソフトで添付送信したメールを受信し、添付されたファイルと比較すると2Mのファイルが数10バイト >大きくなっているところまでは確認しました。 どちらが大きいのでしょう? BASE64自体の問題では無く、ファイル添付の処理のしかたに問題がある…のかも知れません。 細かいところはRFCで確認でしょうかね……。 http://www.emaillab.org/essay/japanese-filename.html とか、まとまっています…か。(日本語関係として…でしょうけど) ただ……ちょっと古いですかね……。 添付ファイルのファイルサイズに関するヘッダとかは……無いですかね…。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
サイズが増えたと言うことは、ゴミがくっついたのでしょうけど、プログラムにバグがあるとしか言いようが無いです。 ゴミが元ファイルの前にくっついたのか後ろにくっついたのか、そのあたりから調べるのでしょうかね。
お礼
ありがとうございます。おっしゃる通り、どこかで、添付データにごみがくっついた のかもしれません。調べてみます。
お礼
自分のコードでエンコードしたファイルを公開されているアプリでデコードしたところ、 問題なく再生できました。よってBASE64の問題ではないと考えています。 また、メールソフトで添付送信したメールを受信したときのファイルより、自分のアプリ で添付送信したメールを受信したときのファイルの方が、2~30バイトほど大きいです。 ですので、別の方のご指摘通りどっかでごみがのっているのかなぁと思っています。 RFCのリンクありがとうございます。調べさせていただきます。