ASP.Net MVC发送邮件服务器端

时间:2014-03-15 18:42:51

标签: sendmail

我正在开发一个.net MVC应用程序。 我已经阅读了很多关于在服务器端发送邮件的内容,但我很困惑。 请问有人可以告诉我这是如何运作的?

1 个答案:

答案 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
}