• ベストアンサー

wmvファイルをメールで送信するプログラム

表題のソースを組んでいます。base64でエンコードし、送信させるところまではできる ようになったのですが、受信してみるときちんと再生されません。メールソフトで添付 送信したメールを受信し、添付されたファイルと比較すると2Mのファイルが数10バイト 大きくなっているところまでは確認しました。base64のエンコードソース自体は、 ネットで公開されているエンコードアプリの結果と比較し、相違ないことを確認しました。 あとは、そのエンコード結果の最初とか最後に"=?","?="以外の文字をつけないと いけないとかそんなのかとおもうのですが、わかりません。どなたかご教授いただけ ないでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>そのエンコード結果の最初とか最後に"=?","?="以外の文字をつけないと >いけないとかそんなのかと それはヘッダ部分じゃないですか? Subjectヘッダとか、To・Fromヘッダとか。 ファイル名をどうエンコードしているのかは微妙ですが…。 # いくつかの型式があった…かと。 BASE64の場合、サイズがちょうど良くない時(3で割り切れない…だったかな)は 最後に'='を連続させて揃えた…かと。 ファイル単体をBASE64エンコードできるツールもあったと思われますのでそれらでのエンコード結果と比較してみる…でしょうかね。 # メール添付なら80文字くらいで改行されるかと思いますが…。 >メールソフトで添付送信したメールを受信し、添付されたファイルと比較すると2Mのファイルが数10バイト >大きくなっているところまでは確認しました。 どちらが大きいのでしょう? BASE64自体の問題では無く、ファイル添付の処理のしかたに問題がある…のかも知れません。 細かいところはRFCで確認でしょうかね……。 http://www.emaillab.org/essay/japanese-filename.html とか、まとまっています…か。(日本語関係として…でしょうけど) ただ……ちょっと古いですかね……。 添付ファイルのファイルサイズに関するヘッダとかは……無いですかね…。

boss_3rd
質問者

お礼

自分のコードでエンコードしたファイルを公開されているアプリでデコードしたところ、 問題なく再生できました。よってBASE64の問題ではないと考えています。 また、メールソフトで添付送信したメールを受信したときのファイルより、自分のアプリ で添付送信したメールを受信したときのファイルの方が、2~30バイトほど大きいです。 ですので、別の方のご指摘通りどっかでごみがのっているのかなぁと思っています。 RFCのリンクありがとうございます。調べさせていただきます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

サイズが増えたと言うことは、ゴミがくっついたのでしょうけど、プログラムにバグがあるとしか言いようが無いです。 ゴミが元ファイルの前にくっついたのか後ろにくっついたのか、そのあたりから調べるのでしょうかね。

boss_3rd
質問者

お礼

ありがとうございます。おっしゃる通り、どこかで、添付データにごみがくっついた のかもしれません。調べてみます。

関連するQ&A