C# 从asp.net网站发送的电子邮件中不会加载图像和css

C# 从asp.net网站发送的电子邮件中不会加载图像和css,c#,asp.net,C#,Asp.net,在我的asp.net网站中,我可以发送支持HTML的电子邮件。这些电子邮件使用SMTP发送,这些电子邮件包含图像,也引用css文件。问题是,当在gmail、yahoo和其他域中打开时,收到的电子邮件中的图像不会显示。我在电子邮件的HTML中使用的css代码/文件也存在同样的问题 我使用以下SMTP代码发送电子邮件: string _mailFrom = ConfigurationManager.AppSettings["mailfrom"].ToString();

在我的asp.net网站中,我可以发送支持HTML的电子邮件。这些电子邮件使用SMTP发送,这些电子邮件包含图像,也引用css文件。问题是,当在gmail、yahoo和其他域中打开时,收到的电子邮件中的图像不会显示。我在电子邮件的HTML中使用的css代码/文件也存在同样的问题

我使用以下SMTP代码发送电子邮件:

        string _mailFrom = ConfigurationManager.AppSettings["mailfrom"].ToString();
        string _emailTo = ConfigurationManager.AppSettings["ScheduledServiceRecipientTO"].ToString();
        string _emailCC = ConfigurationManager.AppSettings["ScheduledServiceRecipientCC"].ToString();

        var _mailMessage = new System.Net.Mail.MailMessage();
        _mailMessage.To.Add(_emailTo);
        _mailMessage.CC.Add(new MailAddress(_emailCC));
        _mailMessage.From = new MailAddress(_mailFrom);
        _mailMessage.Subject = subject;
        _mailMessage.Body = pBody;
        _mailMessage.IsBodyHtml = true;

        try
        {
            var smtp = new System.Net.Mail.SmtpClient();
            {
                smtp.Host = ConfigurationManager.AppSettings["Host"];
                smtp.Port = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]);
                //smtp.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["UserName"], ConfigurationManager.AppSettings["Password"]);
            }

            smtp.Send(_mailMessage);
            return true;
        }

        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
请帮我解决这个问题


提前感谢。

您必须呈现HTML。我们使用RazorHelper功能和部分视图来设计您的电子邮件。 助手类中有以下函数:

public static string RenderPartialViewToString(Controller controller, string viewName, object model)
{
    controller.ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
        var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);

        return sw.GetStringBuilder().ToString();
    }
}
然后在控制器上下文中调用它:

email.Body = RazorHelper.RenderPartialViewToString(this, "PartialViewName", model);

你能发布pBody的内容吗?图片和css文件是本地的还是网络上的?我认为它是在你的本地,所以我认为你需要附加的图像和css文件在您的电子邮件中。