C#,在Windows Forms应用程序中发送电子邮件时,图片显示为空白。

7 浏览
0 Comments

C#,在Windows Forms应用程序中发送电子邮件时,图片显示为空白。

我想发送一封带有标志的电子邮件,但收件箱中的图像是空白的。

以下是代码:

 MailMessage msg = new MailMessage();
 msg.From = new MailAddress(txtEmail.Text);
 StringBuilder message = new StringBuilder();
 message.AppendLine("");
 message.AppendLine("" + txtBody.Text + "");
 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);

我想发送一封带有标志的电子邮件,但是收件箱中的图像是空白的。以下是代码:

 MailMessage msg = new MailMessage();
 msg.From = new MailAddress(txtEmail.Text);
 StringBuilder message = new StringBuilder();
 message.AppendLine("");
 message.AppendLine("" + txtBody.Text + "");
 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);

0
0 Comments

问题出现的原因是在发送邮件时,使用了相对路径来引用图片,而邮件客户端无法下载该图片,因为它不知道从哪里下载。解决方法是提供图片的绝对路径。

在下面的代码中,问题出现在提供相对路径的地方:

message.AppendLine("<img src=@'images/logo.png' />");

应该改为提供图片的绝对路径:

message.AppendLine("<img src='www.somesitename.com/storage/logo.png' />");

0
0 Comments

问题的原因是在发送电子邮件时,在Windows Forms应用程序中插入的图像在邮件中显示为空白。这是因为你在使用HTML图像标签插入图像时指定了一个路径,而当用户打开邮件时,浏览器会尝试使用给定的相对路径查找该图像。假设你是在使用Gmail打开邮件,它会尝试在gmail.com/images/logo.png下查找该图像。它要么会找到Gmail的标志,要么会显示404未找到。解决方法是包括图像的完整路径。

0