2009-05-15 15 views
3

私はasp.netチャートコントロールを使用しています。私のクライアントは、私のWebページに電子メールボタンを追加して、その中に含まれているチャートを含む電子メールを送信できるかどうかを今質問しています。どのように私はこれを行うことができます任意のアイデア?ありがとう。ASP.NETチャートコントロール(埋め込みチャートコントロールイメージを使用したEMailの送信)

答えて

0

グラフデータを保存し、データをロードするページへのリンクを作成するか、ページを作成したHTMLを取得して電子メールに読み込むことができます。すべてのユーザーがHTMLを表示しているわけではありませんので、データをグラフ化できるページへのリンクを送信する方が安全かもしれません。

2

チャートコンポーネントは、チャートが要求されたときに実際にイメージを生成します。次に、このイメージをファイルシステムに保存するか、単にメモリ内に保持します。その部分は設定可能です。

グラフを生成してから、そこからファイル参照を取得できます。そこから2つの選択肢があります。あなたの電子メールは、そのURL参照によってファイルを参照するか、またはそれを実際の電子メール自体に埋め込むかのいずれかです。これはメールクライアントによっても設定可能です。

2

あなたはどこかに画像を保存し、それをロードし、次のようにメールに埋め込むことができ:

 private void SendMail() 
     { 
      //Your mail body is created with help of a StringBuilder which will contain the img tag: 
      //Suppose the mailContent is the StringBuilder object and has the html body etc already appended.... 
      //you would need to append something like following: 

      //mailContent.Append("<td><img src=\"cid:IMAGE_ID\"></td>"); 
      //string body = mailContent.ToString(); 


      string smtpServer = "mailhost.my.domain.net"; 
      string emailFrom = "[email protected]"; 
      string emailTo = "[email protected]"; 


      MailMessage msg = new MailMessage(emailFrom, emailTo, "TestMail...", body); 

      msg.IsBodyHtml = true; 

      //Adding attachments by loading from file 
      Attachment item = new Attachment("Images/Logo.JPG"); 
      item.ContentDisposition.Inline = true; 
      item.ContentDisposition.DispositionType = DispositionTypeNames.Inline; 
      item.ContentId = "IMAGE_ID"; 
      item.ContentType.MediaType = "image/jpeg"; 
      item.ContentType.Name = "Logo.JPG"; 

      msg.Attachments.Add(item); 

      SmtpClient client = new SmtpClient(smtpServer); 
      client.Send(msg); 

     }