首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 使用 SmtpMail 發送郵件完整教學(含 ESMTP 驗證)

     編輯:關於ASP.NET

基本發送範例 (.NET 1.0/1.1 通用)

<%@ Import Namespace="System.Web.Mail" %>
<script runat="server">
MailMessage mail = new MailMessage();
mail.From = "service@brookes.com";
mail.To = "brookes@brookes.com";
mail.BodyFormat = MailFormat.Text;
mail.Body = "a test smtp mail.";
mail.Subject = "r u ok?";
SmtpMail.SmtpServer = "localhost";
SmtpMail.Send(mail);
</script>

常見錯誤:550 Unable to relay

原因:IIS SMTP 虛擬伺服器預設限制轉發。解決:開啟「預設 SMTP 虛擬伺服器」→「內容」→「存取」→「轉發限制」→ 加入允許轉發的用戶端 IP 位址。

ESMTP 驗證寄件 (.NET 1.1 專用)

.NET 1.1 新增 MailMessage.Fields 集合支援 CDO 設定:

MailMessage mail = new MailMessage();
mail.From = "service@brookes.com";
mail.To = "brookes@brookes.com";
mail.BodyFormat = MailFormat.Text;
mail.Body = "a test smtp mail.";
mail.Subject = "r u ok?";
mail.Fields.Add("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); // Basic Auth
mail.Fields.Add("https://schemas.microsoft.com/cdo/configuration/sendusername", "brookes");
mail.Fields.Add("https://schemas.microsoft.com/cdo/configuration/sendpassword", "walkor");
SmtpMail.SmtpServer = "lsg.moon.net";
SmtpMail.Send(mail);

注意:此功能僅限 .NET Framework 1.1,1.0 不支援。.NET 2.0+ 請改用 System.Net.Mail.SmtpClient。

替代方案

  • .NET 2.0+:System.Net.Mail.SmtpClient + NetworkCredential。
  • 第三方元件:JMail、EasyMail 等(不建議新專案引入)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved