C#,当我在 Windows 窗体应用程序中发送电子邮件时,图像显示为空白 [重复]
Posted
技术标签:
【中文标题】C#,当我在 Windows 窗体应用程序中发送电子邮件时,图像显示为空白 [重复]【英文标题】:C#, image appears blank when I send email in a Windows Forms Application [duplicate] 【发布时间】:2016-12-01 18:18:45 【问题描述】:我想发送一封带有徽标的电子邮件,但收件箱中的图片为空白
代码如下:
MailMessage msg = new MailMessage();
msg.From = new MailAddress(txtEmail.Text);
StringBuilder message = new StringBuilder();
message.AppendLine("<img src=@'images/logo.png' />");
message.AppendLine("<p>" + txtBody.Text + "</p>");
msg.Body = message.ToString();
msg.To.Add(txtTo.Text);
msg.IsBodyhtml = true;
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(txtEmail.Text, txtPassword.Text);
client.Host = "Smtp.gmail.com";
client.Port = 587;
client.EnableSsl = true;
client.Send(msg);
【问题讨论】:
【参考方案1】:问题出在下面的行中,您在其中提供了无法正常工作的图像的相对路径。您需要为图片提供绝对路径,否则您的电子邮件客户端将无法下载图片,因为它不知道从哪里下载。
message.AppendLine("<img src=@'images/logo.png' />");
应该是这样的
message.AppendLine("<img src='www.somesitename.com/storage/logo.ong' />");
【讨论】:
【参考方案2】:您正在使用 html 图像标签插入图像,并且您指定了它的路径。这意味着当用户打开邮件时,浏览器将尝试使用给定的相对路径查找该图像。
假设您使用 gmail 打开它,它会尝试在 gmail.com/images/logo.png 下查找图像。它要么会找到 gmail 的徽标,要么会找不到 404
您要做的是包含图像的完整路径
【讨论】:
以上是关于C#,当我在 Windows 窗体应用程序中发送电子邮件时,图像显示为空白 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从文本框(windows窗体)检查主键是不是存在于我的数据库中,c#
当我尝试在 C# 中执行我的 Windows 窗体时,它是空白的?
C# Windows 窗体无法在 Windows10 上加载非托管 C++ DLL