asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – asp.net mvc 4将表单从站点发送到电子邮件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的mvc网站上有反馈表,看起来像

我需要将表单发送到电子邮件.

我为我的表单创建了模型

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;

 namespace ComponentTrading.Web.Models
 {
public class FeedBACkForm
    {
    public String Name { get; set; } 
    public String Email { get; set; } 
    public String Phone { get; set; }
    public String message { get; set; }
    }
}

我为我的表单Contacts.cshtml创建了视图

@using (Html.beginForm("Contacts","Home",FormMethod.Post,new { id = "contact-form" }))
{
<fieldset>
    @Html.TextBoxFor(model => model.Name,new { @Value = Name })
    @Html.TextBoxFor(model => model.Email,new { @Value = "E-mail" })
    @Html.TextBoxFor(model => model.Phone,new { @Value = Phone })
    @Html.TextAreaFor(model => model.message,new { @class = "img-shadow" })
    <input class="form-button" data-type="reset" value="Clear" />
    <input class="form-button" data-type="submit" type="submit" value="Send" />
</fieldset>     
}

我在我的控制器上写了这段代码

[httpGet]
    public ActionResult Contacts()
    {
        FeedBACkForm temp = new FeedBACkForm();
        temp.message = @resources.Global.Contacts_Form_message_Field;
        return View(temp);
    }


    [httpPost]
    public ActionResult Contacts(FeedBACkForm Model)
    {
        String Text = "<html> <head> </head>" +
        " <body style= \" font-size:12px; font-family: Arial\">"+
        Model.message+
        "</body></html>";

        SendEmail("tayna-anita@mail.ru",Text);
        FeedBACkForm tempForm = new FeedBACkForm();
        return View(tempForm);
    }


    public static bool SendEmail(String SentTo,String Text)
    {
        Mailmessage msg = new Mailmessage();

        msg.From = new MailAddress("Test@mail.ru");
        msg.To.Add(SentTo);
        msg.Subject = "password";
        msg.body = Text;
        msg.Priority = MailPriority.High;
        msg.IsBodyHtml = true;

        SmtpClient client = new SmtpClient("smtp.mail.ru",25);



        client.UseDefaultCredentials = false;
        client.EnableSsl = false;
        client.Credentials = new NetworkCredential("TestLogin","Testpassword");
        client.Deliverymethod = SmtpDeliverymethod.Network;
        //client.EnableSsl = true;

        try
        {
            client.Send(msg);
        }
        catch (Exception)
        {
            return false;
        }
        return true;
    }

我的代码没有任何错误,
但当我按下发送按钮时,我没有收到电子邮件,我的表格也没有变得清晰.

我使用了Fiddler Web Debugger,我得到了Send-button click

我认为,这意味着没事,所以我不能忽视什么是错的?

解决方法

我已经复制粘贴了您的代码,并通过一些小的修改使其工作:

>我没有设置Credentials属性
>我修改了模板以删除@Value属性:

@ Html.TextBoxFor(model => model.Name)
@ Html.TextBoxFor(model => model.Email)
@ Html.TextBoxFor(model => model.PhonE)

这些是我所做的唯一更改,我让您的应用程序正常工作.这让我相信SMTP客户端的配置一定有问题.你能检查一下client.Send(msg);引发的异常吗?我希望它会说一些关于无效网络凭证或类似的东西.

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – asp.net mvc 4将表单从站点发送到电子邮件全部内容,希望文章能够帮你解决asp.net-mvc – asp.net mvc 4将表单从站点发送到电子邮件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。