2011-07-22 41 views
1

我有一個asp.net 4.0網頁,其上有10個圖表控件。當他們打開頁面時,我一直將圖表控件通過電子郵件發送給當前登錄的用戶。圖表控件對於每個用戶都會有所不同。我一直在試圖發送1個圖表控件來測試,但電子郵件的主體並不僅僅顯示圖表的輪廓。我嘗試了幾件事情,但無法實現它的工作。代碼我剛纔是 -電子郵件ASP.NET網頁與圖表控件

的web.config

<add key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;"/> 

網頁

保護小組的button1_Click(BYVAL發件人爲對象,BYVALË作爲System.EventArgs)把手Button1.Click

SendMail() 

End Sub 

Private Sub SendMail() 

    Dim SB As New StringBuilder() 
    Dim SW As New StringWriter(SB) 
    Dim htmlTW As New HtmlTextWriter(SW) 
    'SB.Append("<td><img src=""cid:chart17""></td>") 
    Chart10.RenderControl(htmlTW) 
    Dim MyHTML As String = SB.ToString() 

    Dim from As String = "EMAIL ADDRESS" 
    Dim recip As String = "EMAIL ADDRESS" 
    'Dim recip As String = Membership.GetUser.Email.ToString 
    Dim subject As String = "Test Email" 




    'Create message object and populate w/ data from form 
    Dim message As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage() 
    message.From = New System.Net.Mail.MailAddress(from.Trim()) 
    message.To.Add(recip.Trim()) 
    message.Subject = subject.Trim() 
    message.IsBodyHtml = True 
    message.Body = MyHTML 
    'Setup SmtpClient to send email. Uses web.config settings. 
    Dim smtpClient As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient() 

    'Error handling for sending message 
    Try 
     smtpClient.Send(message) 
     'Exception contains information on each failed receipient 
    Catch recExc As System.Net.Mail.SmtpFailedRecipientsException 
     For recipient = 0 To recExc.InnerExceptions.Length - 1 
      Dim statusCode As System.Net.Mail.SmtpStatusCode 
      'Each InnerException is an System.Net.Mail.SmtpFailed RecipientException 
      statusCode = recExc.InnerExceptions(recipient).StatusCode 

      If (statusCode = Net.Mail.SmtpStatusCode.MailboxBusy) Or (statusCode = Net.Mail.SmtpStatusCode.MailboxUnavailable) Then 
       'Log this to event log: recExc.InnerExceptions(recipient).FailedRecipient 
       System.Threading.Thread.Sleep(5000) 
       smtpClient.Send(message) 
      Else 
       'Log error to event log. 
       'recExc.InnerExceptions(recipient).StatusCode or use statusCode 
      End If 

     Next 
     'General SMTP execptions 
    Catch smtpExc As System.Net.Mail.SmtpException 
     'Log error to event log using StatusCode information in 
     'smtpExc.StatusCode 
    Catch ex As Exception 
     'Log error to event log. 
    End Try 

End Sub 

正如你可以看到我已經嘗試了一些論壇上的例子,如「SB.Append」和「chart10.rendercontrol(htmlTW),但都不適合我。

任何helpo將是偉大的。

回答

1

您沒有將圖像附加到電子郵件中。

''I am not sure how to handle memory streams in vb but it should be something like so. 
Dim ms as MemoryStream = new MemoryStream() 
Chart10.SaveImage(ms, ChartImageFormat.Png) 
Dim A As System.Net.Mail.Attachment = New System.Net.Mail.Attachment(ms, "MyChart.png") 
A.ContentId = "chart17" 
A.ContentDisposition.Inline = True 
message.Attachments.Add(A)