2012-04-10 37 views
0

私たちは、人々が電子メールで投稿を投稿できるフォーラムソリューションを提供しています。現在のところ、メールが解析されると、画像は添付ファイルとしてポストに追加されます。私たちがしたいのは、電子メールを解析し、埋め込まれたイメージをメールから取り出し、出力HTMLでインラインイメージに変換することです。私たちは、任意の電子メールクライアントのOutlookをサポートする必要がある、のHotmail、GmailのなどOutlook埋め込み画像をHTMLにインライン画像で埋め込む

見通し元メールアドレス:

<img id="Picture_x0020_1" src="cid:[email protected]">

望ましい結果は、我々は添付ファイルを保存し、

<img id="Picture_x0020_1" src="http://www.site.com/default.aspx?action=ViewAttachment&paid=594">としてSRCを持っているということです

私は、次のような画像を得ることができることを知っています:.NET How to extract embedded image from email message?

RegExを開設する必要がありますか、またはこれを簡略化するライブラリがありますか?私たちは、電子メールをHTMLとしてレンダリングする唯一の人ではないと確信しています。

+0

。それは元のmesasgeを解析することですか?それはURLにイメージを公開することですか? – JotaBe

答えて

1

あなたは確かに埋め込み画像を抽出し、自分で身体を修正するコードを書く道に行くことができます。それはおそらく多くの仕事をしてしまうだろう。

は、我々はここであなたが始めるために十分だhttp://www.quiksoft.com/

からEasyMail.netを使用します。私は問題が何であるかを理解していない

private POP3 pop3 = new POP3(); 
pop3.Connect(pop3Address, port); 
var memoryStream = new MemoryStream(); 
pop3.DownloadMessage(position, memoryStream); 
var email = new EmailMessage(memoryStream) 
var streamView = new HTMLStreamView(email, urlPrefix); 
string body = streamView.Body; 
int counter = 0; 

foreach (Stream stream in streamView.Streams) 
{ 
    if (counter != 0) 
    { 
     stream.Position = 0; 
     byte[] embeddedObjectBytes = new byte[(int)stream.Length]; 
     stream.Read(embeddedObjectBytes, 0, (int)stream.Length); 

     string urlAndCounter = urlPrefix + counter.ToString(); 
     string uniqueUrlAndCounter = GetUniqueUrl(urlAndCounter); 
     if (body.Contains(urlAndCounter + "\"")) 
     { 
      body = body.Replace(urlAndCounter + "\"", uniqueUrlAndCounter + "\""); 
     } 
     else if (body.Contains(urlAndCounter + " ")) 
     { 
      body = body.Replace(urlAndCounter + " ", uniqueUrlAndCounter + " "); 
     } 

     SaveEmbeddedObject(embeddedObjectBytes,uniqueUrlAndCounter); 
    } 

    counter++; 
} 
+0

Quiksoftがシャットダウンしました。 – Deantwo

+0

まあ、それはバマーです。 –

関連する問題