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 という名前に問題があることを確認した後、名前を変更しました。

_EmailLayout

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

    Thanks
</body>

H1タグや「ありがとう」の内容がメールにない

Access.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メーラーのgithubページに次の問題を投稿した後 、レイアウトコードをこれに変更すると問題が修正されました

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

  Mailer

  @RenderBody()

  Thanks

</body>
</html>

これで問題が解決した理由はわかりませんが、解決しました。

于 2014-01-23T10:26:01.850 に答える