【问题标题】:Connecting email server to my Contact page of web application in asp.net/c#在 asp.net/c# 中将电子邮件服务器连接到我的 Web 应用程序的联系人页面#
【发布时间】:2018-05-15 17:08:19
【问题描述】:

也许这是一个简单的问题,但我是 c#、asp.net 开发的新手。我正在建立一个网站,但在将电子邮件服务器连接到我的联系页面时遇到了一些问题。我一直在寻找很长时间,但我找不到合适的答案。我的控制器代码如下:

namespace SITEEXEMPLO.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        [HttpGet]
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index(string Name, string EmailId, string PhoneNo, string Subject, string Message)
        {
            try
            {
                MailMessage mail = new MailMessage();
                mail.To.Add(EmailId);
                mail.From = new MailAddress("xoinas23@gmail.com");
                mail.Subject = Subject;

                string userMessage = "";
                userMessage = "<br/>Name :" + Name;
                userMessage = userMessage + "<br/>Email Id: " + EmailId;
                userMessage = userMessage + "<br/>Phone No: " + PhoneNo;
                userMessage = userMessage + "<br/>Message: " + Message;
                string Body = "Hi, <br/><br/> A new enquiry by user. Detail is as follows:<br/><br/> " + userMessage + "<br/><br/>Thanks";


                mail.Body = Body;
                mail.IsBodyHtml = true;

                SmtpClient smtp = new SmtpClient();
                //SMTP Server Address of gmail
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.Credentials = new System.Net.NetworkCredential("xoinas23@gmail.com", "xxxxx");
                // Smtp Email ID and Password For authentication
                smtp.EnableSsl = true;
                smtp.Send(mail);
                ViewBag.Message = "Thank you for contacting us.";
            }
            catch
            {
                ViewBag.Message = "Error............";
            }

            return View();
        }

HTML代码如下:

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <table width="100%;" border="1">
        <tr>
            <td align="right" colspan="2" style="text-align: center"><strong>SEND EMAIL USING GMAIL ACCOUNT IN MVC</strong></td>
        </tr>
        <tr>
            <td align="right">&nbsp;</td>
            <td align="left">
                @ViewBag.Message
            </td>
        </tr>
        <tr>
            <td align="right">Name :</td>
            <td align="left">
                <input id="txtName" name="Name" width="250px;" />
            </td>
        </tr>
        <tr>
            <td align="right">Your Email id  :</td>
            <td align="left">
                <input id="txttoaddress" name="EmailId" width="250px" />
            </td>
        </tr>
        <tr>
            <td align="right">Phone No :</td>
            <td align="left">
                <input id="txtPhoneno" name="PhoneNo" width="250px" />
            </td>
        </tr>
        <tr>
            <td align="right">Subject :</td>
            <td align="left">
                <input id="txtsubject" name="Subject" width="250px"></input>
            </td>
        </tr>
        <tr>
            <td align="right">Message :</td>
            <td align="left">
                <textarea rows="4" cols="50" name="Message" id="txtmessage"></textarea>
            </td>
        </tr>
        <tr>
            <td align="right">Attachment :</td>
            <td align="left">
                <input type="file" name="file" />
            </td>
        </tr>

        <tr>
            <td align="center" colspan="2">
                <input type="submit" text="Send Message" />
            </td>
        </tr>
    </table>

这可行,但不是我想要的方式。通过运行此代码,我插入了信息,并且我在表单中插入的电子邮件中收到了信息,而不是代码中的电子邮件。我希望用户在表单上写下他们自己的电子邮件,并通过单击按钮在我的电子邮件中收到信息。有人可以帮我吗?

【问题讨论】:

  • 这需要 gmail 允许您的用户通过 gmail 服务从他们的帐户发送邮件。这永远不会奏效。发件人需要进行身份验证。
  • 如果我希望用户填写所需的信息然后我会在我的邮箱中收到它,我该如何在我的网站上进行这项工作?
  • 它将与 Michael 的回答完全一样:您正在使用您的邮件帐户作为发件人和收件人,并将收到包含所收集数据的邮件。
  • 但是“mail.From”应该是用户的输入..我不知道我是否说得很清楚..
  • 您不能通过您的 gmail 帐户发送任意的 mail.From。您可以将EmailId仅作为消息的一部分发送。如果您坚持将EmailId 作为邮件标题的一部分,您可以将其放入密件抄送收件人字段,但我想您不希望将邮件发送给用户。

标签: c# html asp.net html-email


【解决方案1】:

除非我误会,我相信您想发送电子邮件至 xoinas23@gmail.com。为此,请将您的代码更改为以下内容:

mail.To.Add("xoinas23@gmail.com");
mail.From = new MailAddress("xoinas23@gmail.com");

现在,您正在向提交表单的人提供的电子邮件地址发送电子邮件。通过此更改,您只需使用您的电子邮件地址将他们的信息发送给自己。

【讨论】:

  • 我有一个联系页面,用户应该填写一些信息,例如他们的姓名、电话号码、电子邮件、一些文本和一个按钮以将该信息发送到电子邮件。我怎样才能做到这一点?
猜你喜欢
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多