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