1

您好我正在使用 MVC Mailer 来管理在我的应用程序中创建和发送电子邮件。它会很好地创建和发送电子邮件,但我在布局中插入正文中的任何 html 都不在电子邮件中。

梅勒

public class Mailer : MailerBase, IMailer
{
    public aMailer()
    {
        MasterName = "_EmailLayout";
    }

    public virtual MvcMailMessage RequestAccess(RequestAccessViewModel viewmodel)
    {
        ViewData.Model = viewmodel;

        return Populate(x =>
        {
            x.Subject = "RequestAccess for Data";
            x.ViewName = "RequestAccess";
            x.To.Add("AppTeam@groups.hp.com");
            x.From = new MailAddress(viewmodel.Email);
        });
    }
}

我在这里将它设置为使用 _EmailLayout,在看到将其命名为 _Layout 存在问题后,我更改了该名称,因为它会与任何其他名为 _Layout 的文件冲突。

_电子邮件布局

<html>
<head>
</head>
<body>
    <h1>Mailer</h1>
    @RenderBody()

    Thanks
</body>

H1 标签或“谢谢”的内容不在电子邮件中

访问.cshtml

<h3>"This is a Application email." </h3>
<p>@Model.Message</p>
<br/>
<p>Regards</p>
<p>@Model.Name</p>
<p>Business Area: @Model.BusinessArea</p>

电子邮件来源

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><title></title>
</head>
<body>

    <p> Hi jeff test,</p>
    <br>
    <p>Thank you for your enquiry about the Application.</p>
    <br>

</body>

有没有人遇到过这个问题?当我调试我的应用程序时,我可以看到它正在进入 _EmailLayout 但我不知道为什么该文件中的 HTML 没有呈现。

4

1 回答 1

2

在MVC Mailer的 github 页面上发布以下问题后, 将布局代码更改为此解决了问题

<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

  Mailer

  @RenderBody()

  Thanks

</body>
</html>

我不确定为什么这解决了问题,但确实如此。

于 2014-01-23T10:26:01.850 回答