2013-12-15 95 views
1

發送的ReportViewer爲PDF我在vb.net 2012應用程序writtine我創建使用的ReportViewer報告 - 我想點擊一個按鈕的功能來發送報告PDF郵寄通過電子郵件

Public Class Form3 

Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Me.salesTableAdapter.Fill(Me.ordersDataSet.sales) 
    Me.ReportViewer1.RefreshReport() 

    Me.salesTableAdapter.Fill(Me.ordersDataSet.sales) 
    Me.ordersDataSet.sales.DefaultView.RowFilter = String.Format("ser={0}", Form1.SalesDataGridView.Item(0, Form1.SalesDataGridView.CurrentRow.Index).Value) 

    salesBindingSource.DataSource = Me.ordersDataSet.sales.DefaultView 
    Me.ReportViewer1.RefreshReport() 


End Sub 

回答

0

你可以試試這個

const string HTML_TAG_PATTERN = "<.*?>"; 
static string StripHTML(string inputString) 
{ 
    return Regex.Replace(inputString, HTML_TAG_PATTERN, string.Empty); 
} 

public static void sendMessage() 
{ 
    var username = "[email protected]"; 
    var password = "password"; 
    MailAddress MailFrom = new MailAddress("[email protected]"); 
    MailAddress MailTo = new MailAddress("[email protected]"); 
    var subject = "TEST SUBJECT"; 
    var attachmentPath = "test.pdf"; 
    var mailBody = "<b>test</b>"; 


    NetworkCredential cred = new NetworkCredential(username, password); 

    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.UseDefaultCredentials = false; 
    smtp.EnableSsl = true; 
    smtp.Credentials = cred; 
    smtp.Port = 587; 

    MailMessage mail = new MailMessage(); 

    mail.IsBodyHtml = true; 

    AlternateView avAlternateView = null; 
    Encoding myEncoding = Encoding.GetEncoding("UTF-8"); 

    avAlternateView = AlternateView.CreateAlternateViewFromString(StripHTML(mailBody), myEncoding, "text/plain"); 
    mail.AlternateViews.Add(avAlternateView); 

    avAlternateView = AlternateView.CreateAlternateViewFromString(mailBody, myEncoding, "text/html"); 
    mail.AlternateViews.Add(avAlternateView); 

    mail.Sender = MailFrom; 
    mail.From = MailFrom; 
    mail.ReplyTo = MailFrom; 

    mail.To.Add(MailTo); 

    mail.Subject = subject; 
    mail.SubjectEncoding = Encoding.GetEncoding("UTF-8"); 

    mail.BodyEncoding = Encoding.GetEncoding("UTF-8"); 

    Attachment attachment = new Attachment(attachmentPath); 
    mail.Attachments.Add(attachment); 
    try 
    { 
    smtp.Send(mail); 
    } 
    catch (Exception ex) 
    { 
    } 
} 

請同時參閱:Reportviewer send email via gmail

http://forums.asp.net/t/1622010.aspx