当我收到电子邮件时,当我从我的网页发送邮件时,来自和[personalemailremoved] @ gmail.com。如果用户在网站上填写了gmail中的邮件,我需要更改哪些内容才能查看?
我使用Gmail在我的表单中发送电子邮件并通过gmail接收:
Contact.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>
}
HomeController中:
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();
}
答案 0 :(得分:1)
通过gmail中继将始终将from设置为经过身份验证的用户。为了自由设置发件人地址,你需要使用不同的smtp服务器。
答案 1 :(得分:1)
Gmail实际上会自动将其更改为经过身份验证的帐户,因此如果您想这样做,则需要使用其他服务器。
如果您不想使用其他SMTP服务器,请不要使用任何服务器!连接到邮件服务器时,请不要为其提供凭据。这是SMTP服务器发送邮件的方式。请务必注意,只有在您向gmail.com发送电子邮件地址的用户发送电子邮件时才会有效。否则它会认为您将其用作开放中继。您可以在“收件人:”字段中包含其他地址,在进行SMTP通信时无法添加它们。我实际上在大学里做了一个关于这个问题的独立研究,我仍然有我的代码。您可能实际上需要手动进行SMTP通信。如果你需要一个SMTP规范的快速指南,我可以发布一个链接到我所做的解释它的讲义(虽然它不是官方的,它应该比RFC更容易阅读。)
答案 2 :(得分: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);
答案 3 :(得分:0)
大多数smtp服务器不接受作为经过身份验证的用户的其他发件人。或者他们应该从域发送邮件。
有一些免费的smtp服务器,它会从每个发件人中继邮件,但很快就会出现在黑名单上。
域的所有者,add some code to their DNS server,可以识别可能以其名义发送电子邮件的邮件服务器。这可以由接收者检查,接收者可以使用它来识别错误的发送者。
正如您所看到的,调整电子邮件中的“发件人”字段并不容易,并且仍然确保邮件到达。
您可以更改“回复”字段。但这也会使你的“垃圾邮件分数”高一点。