我有一個用于發送電子郵件的 asp.net Web 應用程式,并且我嘗試發送一個 html 檔案模板。我可以發送我的檔案,但模板中的影像不會加載到發送的訊息中!
public void SendEmail(string EmailAddress)
{
try
{
MailMessage mail = new MailMessage();
mail.To.Add(EmailAddress);
mail.From = new MailAddress("[email protected]");
mail.Subject = txtSubject.Text;
string FilePath = Server.MapPath("templateHtml.html");
StreamReader str = new StreamReader(FilePath);
string body = str.ReadToEnd();
//string body = Server.HtmlEncode(str.ReadToEnd());
mail.IsBodyHtml = true;
mail.Body = body;
SmtpClient smtp = new SmtpClient();
smtp.Host = smtpClient;
smtp.Credentials = new NetworkCredential(email, password);
smtp.EnableSsl = true;
smtp.Send(mail);
str.Close();
Response.Write("ok!")
}
catch
{
Response.Write("so bad");
}
}
...
我的html模板是這樣的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<br />
<p>This is an image</p>
<img src="Images/image1.jpg">
<p>This is an image</p>
<img src="http://localhost:1114/WebBody/Images/image2.jpg">
<p>image from net</p>
<img src="https://cdn.mos.cms.futurecdn.net/FVqUjfbiHS9imyJiRiM53-970-80.jpg.webp" width="40%">
</body>
</html>
...當我發送這個 html 檔案時,只加載了最后一張圖片。
有任何想法嗎?
uj5u.com熱心網友回復:
<img src="http://localhost:1114/WebBody/Images/image2.jpg">
第一張圖片不公開,僅在您當地的 IISExpress 中。收件人無權訪問此地址“//localhost:1114/WebBody/Images/image2.jpg”。您需要將其放在公共主機中,例如某些影像托管,或者如果您在內部網環境中,則將其上傳到 IIS 目錄。
這顯然是在公共領域https://cdn.mos.cms.futurecdn.net/FVqUjfbiHS9imyJiRiM53-970-80.jpg.webp
uj5u.com熱心網友回復:
有兩種方式,一種是將圖片上傳到服務器公開,另一種是將圖片編碼為base64。
我將在這里展示第二種方法。
首先,選擇一個transcoding website(

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/522410.html
