<%@ 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>
原因:IIS SMTP 虛擬伺服器預設限制轉發。解決:開啟「預設 SMTP 虛擬伺服器」→「內容」→「存取」→「轉發限制」→ 加入允許轉發的用戶端 IP 位址。
.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。
System.Net.Mail.SmtpClient + NetworkCredential。