【发布时间】:2013-03-18 20:38:15
【问题描述】:
有人发布问题后,我正在尝试向自己发送电子邮件。虽然我收到了一封电子邮件,但这不是我需要的:发件人邮件地址是我自己的,而不是提出问题的人。
是否可以给自己发送邮件(我不知道提问者的 smtp 主机、用户名或密码)。
我会添加一些代码以备不时之需。
QuestionsController.cs
MailMessage msg = new MailMessage();
msg.From = new MailAddress(question.Author + "<" + question.MailAuthor + ">");
msg.To.Add("myGmailAddress");
msg.Subject = question.Title;
msg.Body = question.Message;
msg.Sender = new MailAddress(question.MailAuthor);
SmtpClient client = new SmtpClient();
client.Send(msg);
我的代码首先不包含 msg.sender,但我尝试通过添加发件人来尝试,但这也无济于事。
Web.config(视图文件夹外)
<system.net>
<mailSettings>
<smtp from="myGmailAddress">
<network
host="smtp.gmail.com"
password="myPassword"
userName="myGmailAddress"
port="587"
enableSsl="true"
defaultCredentials="false" />
</smtp>
</mailSettings>
</system.net>
也试过没有 from 部分和 defaultCredentials="false"。
当我调试代码时,我可以看到 msg 中的 from 以我的 gmail 地址开头,并在他通过 msg.From 部分时发生变化。但是当我去我的邮件时,我得到了这个:
【问题讨论】:
-
并非所有电子邮件服务器都不允许您发送任何人的电子邮件。它与安全有关。 en.wikipedia.org/wiki/Open_mail_relay 除非您在 gmail 中验证 test@mail.be 归您所有,否则 gmail 不会让您使用它作为发件人地址发送电子邮件。
-
当我使用有效的邮件地址(如雅虎地址)时,我也会得到它
-
您可以使用此作为发件人地址通过您的 Gmail(非代码)发送电子邮件吗?您是否将其作为有效的发件人地址添加到您的 Gmail 中?阅读:support.google.com/mail/answer/22370?hl=en
-
问题是,我不想发电子邮件,其他人必须给我发消息(当他们提出问题时,我必须获得一封带有提出问题和其他内容的人的地址,或者我必须得到某人已发布消息的通知,例如通过 noreply@mail.com)
-
这实际上是一个测试,邮件地址必须更改为其他内容,并且取决于某人选择的人。
标签: asp.net-mvc-3 system.net.mail