0

作業中のサイトの連絡先ページからメールを送信するために郵便ライブラリを使用しています。メールは送信されますが、すべてのアイテムがメールに含まれているわけではありません。ブレークポイントを設定してコードをステップ実行したところ、すべての項目が渡されたモデルに含まれていますが、メールで送信されたテンプレートにはすべてのデータが含まれていません。

シンプルなテンプレート (Contact.cshtml) は次のとおりです。

@model AccessorizeForLess.Models.ContactEmail
To: ****************@psychocoder.net
From: @Model.From
First Name: @Model.FirstName
Last Name: @Model.LastName
Subject: @Model.SelectedSubject
Message: @Model.Message

これが ContactEmail モデルです

using AccessorizeForLess.ViewModels;
using Postal;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace AccessorizeForLess.Models
{
    public class ContactEmail : Email
    {
        public string To { get; set; }

        [DataType(DataType.EmailAddress)]
        [DisplayName("Email Address")]
        [RegularExpression(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$", ErrorMessage = "Please enter a valid email address!")]
        [Required(ErrorMessage="Please provide your email address")]
        public string From { get; set; }

        [DisplayName("First Name")]
        [Required(ErrorMessage="Please provide your first name")]
        public string FirstName { get; set; }

        [DisplayName("Last Name")]
        [Required(ErrorMessage="Please provide your last name")]
        public string LastName { get; set; }

        [DisplayName("Subject")]
        [Required(ErrorMessage="Please select a subject")]
        public string SelectedSubject { get; set; }

        [DisplayName("Message")]
        [DataType(DataType.MultilineText)]
        [Required(ErrorMessage="Please provide a message for the email")]
        public string Message { get; set; }

        public List<EmailSubjectViewModel> Subjects { get; set; }
    }
}

ContactControllerのSendメソッド:

public ActionResult Send(ContactEmail email)
{
    ContactEmail e = new ContactEmail();
    e.From = email.From;
    e.FirstName = email.FirstName;
    e.LastName = email.LastName;
    e.SelectedSubject = email.SelectedSubject;
    e.Message = email.Message;

    e.Send();
    return RedirectToAction("Index");
}

Sendを実行したところ、渡されたモデルにはすべてのデータが含まれていますが、届いた電子メールには姓、件名、メッセージしかありません。名前とメールアドレスがなぜか抜けています。

4

1 に答える 1

0

Contact.cshtml (マイ メール テンプレート) を次のように変更し、すべてが入力されるようになりました

 Content-Type: text/html; charset=utf-8  
@model AccessorizeForLess.Models.ContactEmail
To: **************@psychocoder.net
From: @Model.From


<html>
    <head>
        <title>Email from @Model.From</title>
        <style>
            hr
            {
               border: 1px solid #e50e8d;
               box-shadow: 5px 5px 5px #888888;
            }
        </style>
    </head>
<body>
    <p>Dear Admin, you have received an email from @Model.FirstName  @Model.LastName regarding @Model.SelectedSubject .</p>
    <p>The content of the message is below:<br />
    <hr />
    Message: @Model.Message<br />
    <hr /></p>
</body>
</html>
于 2015-08-01T03:08:34.783 に答える