使用 System.Net.Mail 命名空間發送郵件,支援 SSL、HTML 內容、附件等功能。以下為可直接生產使用的完整範例。
<asp:TextBox ID="tbTag" runat="server" />
<asp:TextBox ID="tbAdv" TextMode="MultiLine" runat="server" />
<asp:Button ID="btnSend" Text="發送" OnClick="btnSend_Click" runat="server" />
<asp:Label ID="Label1" runat="server" />
protected void btnSend_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("365rss@gmail.com");
mail.To.Add("prlibertine@gmail.com");
mail.Subject = "365Rss.CN 用戶反饋";
mail.IsBodyHtml = true;
mail.Body = $"<h2>{ddlMainTag.SelectedItem.Text}</h2><br/><h4>{tbTag.Text}</h4><hr/>{tbAdv.Text}";
SendMail(mail);
}
private void SendMail(MailMessage mail)
{
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 465,
EnableSsl = true,
Credentials = new NetworkCredential("365rss@gmail.com", "pwd")
};
try
{
smtp.Send(mail);
Label1.Text = "發送成功";
}
catch (Exception ex)
{
Label1.Text = "發送失敗: " + ex.Message;
}
}
EnableSsl=true 明確啟用 STARTTLS。web.config <appSettings> 並加密,或使用 Azure Key Vault 等密鑰管理服務。SmtpClient.SendAsync 非同步模式避免阻塞執行緒。