我正在开发一个.net MVC应用程序。 我已经阅读了很多关于在服务器端发送邮件的内容,但我很困惑。 请问有人可以告诉我这是如何运作的?
答案 0 :(得分:1)
这太宽泛了。简而言之:
您可以通过.NET API将邮件上传到SMTP服务器。然后,SMTP服务器将电子邮件重定向到目标服务器(直接或通过一个或多个服务器)。交付过程无法控制 - 您可以从第一个SMTP服务器(如果有)获取错误消息,但无法确定电子邮件是否已交付 - 它可以实现链中的每个服务器。 / p>
如果要使用发送邮件,则必须设置SMTP服务器或使用公共服务器(例如gmail.com)。理论上你可以在内存中使用SMTP服务器,但这些服务器通常会被链中的其他SMTP服务器拒绝(从而降低了传输的几率)。
参考: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
通过gmail发送电子邮件的C#示例:
web.config(或app.config):
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="gmail_account_name@gmail.com">
<network userName="gmail_account_name" defaultCredentials="false"
password="gmail_account_password" port="587"
host="smtp.gmail.com" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
代码:
var client = new SmtpClient();
var email = new MailMessage("noreply@robot.com", "user@gmail.com") {
IsBodyHtml = false,
Subject = "this is subject",
Body = "this is body",
BodyEncoding = Encoding.UTF8
};
try {
client.Send(email);
} catch (SmtpException exception) {
// log exception
}