2017-05-24 46 views
0

我想使用C#將圖像添加到我的電子郵件正文中。這就是我所做的。任何人都可以幫助我?將圖像添加到電子郵件使用C#的身體#

var fromAddress = new MailAddress("[email protected]", "aaa"); 
     var toAddress = new MailAddress("[email protected]", "bbb"); 
     const string fromPassword = "mypassword"; 
     const string subject = "Tes Program"; 
     const string body = "Bersama ini kami kirimkan QR Code sebagai sarana validasi pengiriman rekening koran Anda. Harap simpan dan tunjukkan QR Code ini saat kurir kami datang untuk mengantar rekening koran. Atas perhatiannya kami sampaikan terima kasih. Salam"; 

     var smtp = new SmtpClient 
     { 
      Host = "smtp.gmail.com", 
      Port = 587, 
      EnableSsl = true, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
     }; 

     using (var message = new MailMessage(fromAddress, toAddress) 
     { 

      Subject = subject, 
      Body = body 


     } 

     ) 
     { 
      smtp.Send(message); 
     } 

我有picturebox1,想補充一點,在picturebox1顯示我的電子郵件正文

+0

? –

+0

該圖像是我從我輸入到文本框中的東西生成的QR碼,然後它將顯示在圖片框中 –

+0

[發送電子郵件中的內嵌圖像]的可能重複(https://stackoverflow.com/questions/18358534/send-inline - 圖像 - 在電子郵件) – Hexie

回答

0

您需要調整您的代碼,包括內嵌圖像的圖像。

看看哪些已經回答了這個以下幾個問題:

Link 1

Link 2

代碼段(您將需要添加類似以達到相同的結果的東西),從鏈接1所;

protected void Page_Load(object sender, EventArgs e) 
{ 
    string Themessage = @"<html> 
         <body> 
         <table width=""100%""> 
         <tr> 
          <td style=""font-style:arial; color:maroon; font-weight:bold""> 
          Hi! <br> 
          <img src=cid:myImageID> 
          </td> 
         </tr> 
         </table> 
         </body> 
         </html>"; 
    sendHtmlEmail("[email protected]", "tomailaccount", Themessage, "Scoutfoto", "Test HTML Email", "smtp.gmail.com", 25); 
} 

protected void sendHtmlEmail(string from_Email, string to_Email, string body, string   from_Name, string Subject, string SMTP_IP, Int32 SMTP_Server_Port) 
{ 
    //create an instance of new mail message 
    MailMessage mail = new MailMessage(); 

    //set the HTML format to true 
    mail.IsBodyHtml = true; 

    //create Alrternative HTML view 
    AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, null, "text/html"); 

    //Add Image 
    LinkedResource theEmailImage = new LinkedResource("E:\\IMG_3332.jpg"); 
    theEmailImage.ContentId = "myImageID"; 

    //Add the Image to the Alternate view 
    htmlView.LinkedResources.Add(theEmailImage); 

    //Add view to the Email Message 
    mail.AlternateViews.Add(htmlView); 

    //set the "from email" address and specify a friendly 'from' name 
    mail.From = new MailAddress(from_Email, from_Name); 

    //set the "to" email address 
    mail.To.Add(to_Email); 

    //set the Email subject 
    mail.Subject = Subject; 

    //set the SMTP info 
    System.Net.NetworkCredential cred = new System.Net.NetworkCredential("[email protected]", "fromEmail password"); 
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); 
    smtp.EnableSsl = true; 
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtp.UseDefaultCredentials = false; 
    smtp.Credentials = cred; 
    //send the email 
    smtp.Send(mail); 
} 
0

你需要將其添加爲電子郵件中嵌入的資源,併爲它建立一個HTML視圖,這裏是一個例子,讓你開始:你在哪裏的圖像加載到你的應用程序

private static void AddImageToEmail(MailMessage mail, Image image) 
    { 
     var imageStream = GetImageStream(image); 

     var imageResource = new LinkedResource(imageStream, "image/png") { ContentId = "added-image-id" }; 
     var alternateView = AlternateView.CreateAlternateViewFromString(mail.Body, mail.BodyEncoding, MediaTypeNames.Text.Html); 

     alternateView.LinkedResources.Add(imageResource); 
     mail.AlternateViews.Add(alternateView); 
    } 

    private static Stream GetImageStream(Image image) 
    { 
     // Conver the image to a memory stream and return. 
     var imageConverter = new ImageConverter(); 
     var imgaBytes = (byte[])imageConverter.ConvertTo(image, typeof(byte[])); 
     var memoryStream = new MemoryStream(imgaBytes); 

     return memoryStream; 
    } 
相關問題