【问题标题】:Send a mail in mvc 3在 mvc 3 中发送邮件
【发布时间】:2016-08-21 12:40:48
【问题描述】:

关于在 mvc 3 中发送邮件的问题。

当我点击 btnApply 时,它应该向 abcd@gmail.com 发送 2 封电子邮件,并向(谁在申请表中填写电子邮件 ID,如 123@gmail.com)发送确认

例如:

  • 电子邮件1xyz@gamail.com
  • Email2 : abcd@gmail.com
  • Email3 : 申请表中输入的电子邮件,例如123@gmail.com

当一个Email3点击应用从Email1(Sender)发送邮件到Email2(receiver) & Email3(receiver)

当一个Email3点击应用从Email2(Sender)发送邮件到Email2(receiver) & Email3(receiver)

  1. 我在弹出窗口中有表单:

     @using (Html.BeginForm()){
     Your Full Name
        <input type="text" value="" id="txtname" name="txtname" required />
        Your Email          
        <input type="email" value="" id="txtemail" name="txtemail"  required />    
        Upload Your Resume
        <input name="Upload Saved Replay" id="btnFile" type="file" />
        <input type="button" id="btnApply" name="btnApply" value="Apply" />
    }
    
  2. 我有一个电子邮件管理器,它只发送 1 封从 xyz@gmail.com 到申请表中指定的电子邮件 ID (123@gmail.com) 的邮件

    public class EmailManager
    {
        private const string EmailFrom = "xyz@gmail.com";
        public static void Enquiry( int JobId, string UserName, string Email, string Massage)
        {
            using (var client = new SmtpClient()) {
                using (var message = new MailMessage(EmailFrom, Email)) {
                    message.Subject = "Successful";
                    message.Body = "<html><head><meta content=\"text/html; charset=utf-8\" /></head><body><p>Dear " + UserName +
                        ", </p> <p>Thankyou for Registering</p>"
                        + "</a></p><div>Best regards,</div><div>Nisha</div></body></html>";
                    message.IsBodyHtml = true;
                    client.EnableSsl = true;
                    client.Send(message);
                };
            };
        }
    }
    

【问题讨论】:

  • 在您的代码中EmailFromxyz@gmail.com 那么为什么要将它发送到相同的xyz@gmail.com
  • 我认为你应该清楚你想做什么。哪些是EmailFrom,哪些是你发送给Email的。如果您澄清,更容易知道如何发送您的电子邮件。此外,如果您希望将其他 Emails 复制到您发送的 电子邮件 中,请明确指出
  • 将变量 EmailFrom 重命名为 EmailTo 以便于理解和最佳实践,我建议您评论您的代码以使其更易于阅读
  • 你的代码还能运行吗?如果它运行时会发生什么?
  • 同时看看这个应该会有所帮助stackoverflow.com/questions/7498968/…

标签: asp.net-mvc forms email


【解决方案1】:

你可以在两个 using 之间使用 for 循环。

string[] Emails = { Email,"abcd@gmail.com", "xyz@gmail.com" }

for(var i = 0; i < 3; i++) 
{
    using (var message = new MailMessage(EmailFrom, Emails[i]))
    {   
        message.Subject = "Successful";
        message.Body = "<html><head><meta content=\"text/html; charset=utf-8\" /></head><body><p>Dear " + UserName +
        ", </p> <p>Thankyou for Registering</p>"
        + "</a></p><div>Best regards,</div><div>Nisha</div></body></html>";
        message.IsBodyHtml = true;
        client.EnableSsl = true;
        client.Send(message);
    };
}

变量Email来自void Enquiry,其他是硬编码

【讨论】:

  • 谢谢,但这是否可以对 Email2 进行硬编码:abcd@gmail.com ??
  • 这会将相同的电子邮件发送给同一个人 3 次
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
相关资源
最近更新 更多