dポイントプレゼントキャンペーン実施中!

こんにちは、
http://dobon.net/vb/dotnet/internet/receivepop3m …
を参考にメール受信することができまして、
main部分で返ってきたmailsから件名と、本文を抜き出したいと考えているのですが
どのようにするべきなのでしょうか
(件名もうまくいってない感じでして。。。。返ってきたmailsからやるのが間違いなのでしょうか?)

static void Main(string[] args)
{
string[] mails;
mails = Receive("localhost", 110, "id", "pass", false);

// 結果の出力
int st;
int en;
for (int i = 0; i < mails.Length; ++i)
{
st = mails[i].IndexOf("Subject:") + 8; //件名の開始位置
en = mails[i].IndexOf("\r\nTo:", st); //件名の終了位置??
System.Diagnostics.Trace.WriteLine(mails[i].Substring(st, en-st));
}


Console.ReadLine();
}

A 回答 (2件)

>(件名もうまくいってない感じでして。

。。。返ってきたmailsからやるのが間違いなのでしょうか?)

MIMEエンコードされていたり…とか、いろいろあったりします。
また、ヘッダ部分は1行に収まらない。ということもありえますので、その辺りも考慮する必要があります。
Subjectの次が必ずしもTo:であるとは限らない部分もありますから、試された方法ではダメな場合もあるかと。
    • good
    • 0

プログラム開発言語に関するご質問ではなくメールの構造に関するご質問ですね?


電子メールの様式(文書構造)は確認済みでしょうか?
簡単に言えば「各種メールヘッダー行が続き、空行があったらその後ろが本文」です。
ただし、これはシングルパートの場合で、添付ファイルが付いたマルチパートの場合は別です。

該当RFCを読むのが一番ですが、以下のような解説記事から入って理解を進めるのが簡単でしょう。

http://www.atmarkit.co.jp/ait/articles/0104/10/n …

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!