C# でメールメッセージのコンテンツを抽出
メール情報を表示
この MailMessage メールメッセージを表し、開発者がメールメッセージのプロパティにアクセスできるようにします。ヘッダー情報(以下で説明) メールヘッダーの抽出)はさまざまな方法で抽出および操作できます。この記事では、選択したメールヘッダー情報とメール本文を画面に表示する方法を解説します。メール情報を画面に表示するには、以下の手順に従ってください。
- インスタンスを作成します MailMessage クラス。
- メールメッセージをロードします MailMessage インスタンス。
- メール内容を画面に表示する。
以下のコードスニペットは、画面上にメール情報を表示する方法を示しています。
// Create MailMessage instance by loading an Eml file
var message = MailMessage.Load("test.eml", new EmlLoadOptions());
// Gets the sender info, recipient info, Subject, htmlbody and textbody
Console.Write("From:");
Console.WriteLine(message.From);
Console.Write("To:");
Console.WriteLine(message.To);
Console.Write("Subject:");
Console.WriteLine(message.Subject);
Console.WriteLine("HtmlBody:");
Console.WriteLine(message.HtmlBody);
Console.WriteLine("TextBody");
Console.WriteLine(message.Body);
メールヘッダーを抽出
メールヘッダーは、インターネットメールメッセージに含まれる、Internet および RFC で定義された標準ヘッダー フィールドの集合を表します。メールヘッダーは次を使用して指定できます MailMessage クラスです。共通のヘッダータイプは以下で定義されています: HeaderType クラス。これは通常の列挙型のように動作するシールドクラスです。メールからヘッダーを抽出するには、以下の手順に従います。
- インスタンスを作成します MailMessage クラス。
- インスタンスにメールメッセージをロードします MailMessage クラス。
- メールメッセージをロードした後、その生データを取得します。
この MailMessage クラス自体は From、To、Cc、Subject などのプロパティを含みます。これらのプロパティはヘッダーから抽出できます。
次のコードスニペットは、メールヘッダーを抽出する方法を示しています。
デコードされたヘッダー値の取得
次のコードスニペットは、デコードされたヘッダー値を取得する方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage mailMessage = MailMessage.Load(dataDir + "emlWithHeaders.eml");
string decodedValue = mailMessage.Headers.GetDecodedValue("Thread-Topic");
Console.WriteLine(decodedValue);
メール本文を抽出
プレーンテキスト本文を取得
この 本文 プロパティはメッセージ本文のプレーンテキスト表現を返します。
string plainTextBody = mailMessage.Body;
注: メッセージに text/plain MIME パートが存在する場合、プロパティはそのテキストデータを返します。存在しない場合は、… から分離されたテキストコンテンツを返します。 HtmlBody HTML マークアップなしのプロパティ。
HTML 本文をプレーンテキストとして取得
この MailMessage このクラスは、メッセージの HTML 本文をプレーンテキストとして抽出する機能を提供します。 MailMessage クラスは以下を提供します。 GetHtmlBodyText HTML 本文をプレーンテキストで返すメソッド。このメソッドは解析します。 HtmlBody プロパティは HTML マークアップを無視して、分離されたプレーンテキストコンテンツを返します。 GetHtmlBodyText このメソッドは、本文に URL を含めるかどうかを示すブールパラメータを受け取ります。true を渡すと、HTML 本文に URL が含まれることを示します。
以下のコードスニペットは、次の使用例を示しています GetHtmlBodyText メールの HTML 本文をプレーンテキストとして抽出するメソッド。
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();
MailMessage mail = MailMessage.Load(dataDir + "HtmlWithUrlSample.eml");
string body_with_url = mail.GetHtmlBodyText(true);// body will contain URL
string body_without_url = mail.GetHtmlBodyText(false);// body will not contain URL
Console.WriteLine("Body with URL: " + body_with_url);
Console.WriteLine("Body without URL: " + body_without_url);
X.500 Exchange アドレスにアクセス
この MailAddress クラスは…を持っています X500Address このプロパティは、メッセージに存在する場合に Exchange の X.500 形式アドレスを公開するために作られています。X.500(Exchange)アドレス文字列への読み取り専用アクセスを提供します。 MailAddress インスタンスは、メッセージのメタデータに X.500 アドレスが含まれていればそれを返し、含まれていなければ null または空を返します。解析は不要で、プロパティは生の X.500 文字列を返します。
var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;