ผู้เขียน: Tigerwen01
ในการพัฒนารายวัน เรามักจะพบกับการพัฒนาโมดูลแอปพลิเคชันที่จะส่งอีเมลถึงลูกค้าโดยอัตโนมัติ ตัวอย่างเช่น เมื่อลูกค้าดำเนินการเฉพาะเจาะจง หรือลงทะเบียน หรือซื้อสินค้าทางออนไลน์ เซิร์ฟเวอร์จะส่งข้อความถึงลูกค้าเมื่อ การดำเนินการของลูกค้าเสร็จสิ้นการส่งอีเมลยืนยันโดยอัตโนมัติ ฯลฯ .NET Framework มีหลายวิธีในการใช้ซ็อกเก็ตเพื่อสร้างการเชื่อมต่อกับเมลเซิร์ฟเวอร์ จากนั้นใช้บริการ SMTP (Simple Mail Transfer Protocol) เพื่อส่งอีเมล แต่วิธีนี้ค่อนข้างซับซ้อน ลองใช้คลาสที่ได้รับจากเนมสเปซ System.Web.Mail ของเฟรมเวิร์ก .NET เพื่อส่งอีเมลให้เสร็จสิ้น เพราะมันง่ายมาก
เนมสเปซ System.Web.Mail จัดเตรียมอินเทอร์เฟซที่ได้รับการจัดการอย่างง่ายสำหรับ SMTP (Simple Mail Transfer Protocol) และมีหลายคลาส รวมถึงคลาสที่สำคัญ เช่น MailMessageMailAttachmentSmtpMail คลาส MailAttachment มีคุณสมบัติสำหรับการสร้างไฟล์แนบอีเมลและวิธีการ คลาส MailMessage มีคุณสมบัติและวิธีการในการสร้างข้อความอีเมล และคลาส SmtpMail มีคุณสมบัติและวิธีการส่งข้อความโดยใช้คอมโพเนนต์การส่งข้อความ Collaboration Data Objects (CDOSYS) ของระบบโฮสต์
เพื่อให้แน่ใจว่าโปรแกรมสามารถทำงานได้อย่างถูกต้อง วิธีการ "รีเลย์" สำหรับการตั้งค่าเซิร์ฟเวอร์เสมือน SMTP เริ่มต้นใน IIS จะเป็นดังนี้:
เข้าสู่อินเทอร์เฟซ "บริการข้อมูลทางอินเทอร์เน็ต" คลิกขวาที่ "คุณสมบัติเซิร์ฟเวอร์เสมือน SMTP เริ่มต้น" แล้วเลือก "คุณสมบัติ" ในเมนูป๊อปอัป คลิกปุ่ม "รีเลย์" ในแท็บ "การเข้าถึง" จากนั้นเพิ่ม "127.0.0.1" ใน "ที่อยู่ IP (มาสก์)/ชื่อโดเมน" ในหน้าต่าง "ข้อจำกัดการถ่ายทอด"
ด้านล่างนี้คือไฟล์ SendEmail.aspx ซึ่งได้รับการพัฒนาโดยใช้ Visual Web Developer 2005 Express Edition รุ่นเบต้า 2 และผ่านการรันภายใต้ Windows2000Server+sp4 สำหรับการอ้างอิง:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Mail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" " http //www.w3.org/TR/xhtml11/DTD/xhtml11.dtd ">
<script runat = "เซิร์ฟเวอร์">
เป็นโมฆะ OnSend (ผู้ส่งวัตถุ, EventArgs e) {
ข้อความ MailMessage = MailMessage ใหม่ ();
messagege.From = Sed.Text;
Messge.To = Receiver.Text;
Messge.Subject = Subj.Text;
Messge.Body
= Body.Text;
SmtpMail.SmtpServer = "localhost"
;
สำเร็จแล้ว! ";
}
</script>
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="server">
<title>ส่งอีเมลส่วนติดต่อผู้ใช้</title>
</head>
<body>
<h1> ส่ง UI อีเมล</h1>
<form id="form1" runat="server">
<div>
<hr>
<table cellspacing="8">
<tr>
<td align=right valign=bottom>ผู้ส่ง :</td >
<td><asp:TextBox ID=Sed runat=server/></td>
</tr>
<tr>
<td align=right valign=bottom>ผู้รับ:</td>
<td> <asp:TextBox ID =ผู้รับ runat=เซิร์ฟเวอร์ /></td>
</tr>
<tr>
<td align=right valign=bottom>ธีม:</td>
<td><asp:TextBox ID=Subj runat= เซิร์ฟเวอร์ /></ td>
</tr>
<tr>
<td align=right valign=bottom>เนื้อหา:</td>
<td><asp:TextBox ID=Body TextMode=MultiLine Rows=5 Columns=40 runat= server /></ td>
</tr>
</table>
<hr />
<asp:Button Text="Send" OnClick="OnSend" runat=server />
</div>
</form>
<asp:Label ID=lab runat= server/>
</body>
</html>
บทความนี้จะแนะนำวิธีการส่งอีเมลในแอปพลิเคชันกรอบงาน .NET เท่านั้น และไม่เกี่ยวข้องกับการแนะนำโดยละเอียดเกี่ยวกับคลาสในเนมสเปซ System.Web.Mail เกี่ยวกับ System.Web.Mail สามารถอ้างอิงข้อมูลที่เกี่ยวข้องได้