1

当我从我的网页发送邮件时,发件人和收件人都是 [personalemailremoved]@gmail.com。我需要更改哪些内容才能从用户在网站上填写的 gmail 邮件中查看?

我使用 Gmail 以我的形式发送电子邮件并通过 gmail 接收:

联系人.cshtml

@using (Html.BeginForm("Contact", "Home", FormMethod.Post, new { id = "contactform" }))
    {

        <ol>
            <li>
                <label for="mail">
                    Din E-post*</label>
                @Html.TextBox("mail", null, new { @class = "text" })
            </li>
            <li>
                <label for="rubrik">
                    Rubrik*</label>
                @Html.TextBox("rubrik", null, new { @class = "text" })
            </li>
            <li>
                <label for="message">
                    Meddelande*</label>
                @Html.TextArea("meddelande")
            </li>
            <li class="buttons">
                <input type="submit" name="imageField" id="imageField" value="Skicka meddelande"
                    class="button" />
                <div class="clr">
                </div>
            </li>
        </ol>
    }

家庭控制器:

 public ActionResult Contact(string mail, string rubrik, string meddelande)
        {
            try
            {
                WebMail.SmtpServer = "smtp.gmail.com";
                WebMail.EnableSsl = true;
                WebMail.UserName = "personalemailremoved@gmail.com";
                WebMail.Password = "MYPASSWORD";
                WebMail.SmtpPort = 587;
                WebMail.Send(
                        "personalemailremoved@gmail.com",
                        rubrik,
                        meddelande,
                        mail
                    );

                return RedirectToAction("MailSent");
            }
            catch (Exception)
            {
                ViewData.ModelState.AddModelError("", "Kontrollera uppgifterna");
            }

            return View("Contact");
        }
        public ActionResult MailSent()
        {
            return View();
        }
4

4 回答 4

1

通过 gmail 中继将始终将 from 设置为经过身份验证的用户。为了自由设置发件人地址,您需要使用不同的 smtp 服务器。

于 2011-11-17T14:39:29.187 回答
1

Gmail 实际上会自动将其更改为经过身份验证的帐户,因此如果您想这样做,您需要使用另一台服务器。

如果您不想使用不同的 SMTP 服务器,请不要使用任何一个!当你连接到邮件服务器时,不要给它凭据。这就是 SMTP 服务器发送邮件的方式。请务必注意,这仅在您仅向具有 gmail.com 电子邮件地址的用户发送电子邮件时才有效。否则,它会认为您将其用作开放中继。您可以在“收件人:”字段中添加其他地址,只是在进行 SMTP 通信时不能添加它们。实际上,我在大学里对这个确切的东西进行了独立研究,我仍然有我的代码。您实际上可能需要手动进行 SMTP 通信。如果您需要 SMTP 规范的快速指南,我可以发布一个链接,指向我制作的解释它的讲义(虽然它不是官方的,但它应该比 RFC 更容易阅读)。

于 2011-11-17T15:04:13.020 回答
0

您可以将System.Net.Mail与 ASP.NET 的Mail Message类结合使用。这是一个例子:

using System.Net.Mail;

// Create email code
MailMessage m = new MailMessage();

m.From = new MailAddress("address@gmail.com", "display name");
m.To.Add("address@gmail.com");
m.Subject = "subject";
m.Body = "Body";

SmtpClient smtp = new SmtpClient("Your SMTP Server");
smtp.Send(m);
于 2011-11-17T14:04:35.857 回答
0

大多数 smtp 服务器不接受其他发件人作为经过身份验证的用户。或者来自他们应该从中发送邮件的域。

有一些免费的 smtp 服务器,可以中继来自每个发件人的邮件,但它们很快就会被列入黑名单。

域的所有者可以向他们的 DNS 服务器添加一些代码,以识别可能以他们的名义发送电子邮件的邮件服务器。这可以由接收者检查,并且接收者可以使用它来识别虚假发送者。

如您所见,调整电子邮件中的“发件人”字段并确保邮件到达并非易事。

您可以更改“回复”字段。但这也会使您的“垃圾邮件分数”更高一些。

于 2011-11-17T14:51:55.797 回答