1. ใช้ซอฟต์แวร์การส่งที่จัดทำโดย outLook เช่นซอฟต์แวร์ UFIDA U8 Manufacturing (เวอร์ชันสาธิต) ที่ฉันเคยเห็นซึ่งฟังก์ชันอีเมลถูกส่งโดยการเรียกส่วนประกอบ ActiveX ของ outLook ข้อดี: การพัฒนาแบบง่าย: อาศัย องค์ประกอบ Outlook บริการอีเมล SMTP
เพื่อส่งอีเมล รหัสมีดังนี้
Private Sub Send()
Dim outObj เป็น Outlook.Application ใหม่ ()
รายการติ่มซำเป็น Outlook.MailItemClass
รายการ = outObj.CreateItem(0)
รายการถึง = "
[email protected] "
Item.Subject = "สวัสดี"
Item.Body = "นรก"
Item.Attachments.Add("C:abc.txt")
รายการส่ง()
การอ้างอิง ส่วนท้าย
2. การพัฒนาเว็บ โปรดดู System.Web.Mail ใน ASP.NET ใจดี
เนมสเปซ System.Web.Mail มีคลาสที่ช่วยให้คุณสามารถสร้างและส่งข้อความโดยใช้คอมโพเนนต์ข้อความ CDOSYS (Collaboration Data Objects for Windows 2000) ข้อความเมลจะถูกส่งผ่านบริการเมล SMTP ที่มีอยู่ใน Microsoft Windows 2000 หรือผ่านเซิร์ฟเวอร์ SMTP ใดๆ คลาสในเนมสเปซนี้สามารถใช้ใน ASP.NET หรือแอปพลิเคชันที่ได้รับการจัดการใดๆ
MailAttachment มีคุณสมบัติและวิธีการสร้างไฟล์แนบอีเมล
MailMessage มีคุณสมบัติและวิธีการสร้างข้อความอีเมล
SmtpMail จัดเตรียมคุณสมบัติและวิธีการส่งข้อความโดยใช้ส่วนประกอบข้อความ Collaboration Data Objects (CDOSYS) ของ Windows 2000
เมลสามารถส่งผ่านบริการเมล SMTP ที่มีอยู่ใน Microsoft Windows 2000 หรือผ่านเซิร์ฟเวอร์ SMTP ใดก็ได้ ประเภทในเนมสเปซ System.Web.Mail สามารถใช้ใน ASP.NET หรือแอปพลิเคชันที่ได้รับการจัดการใดๆ
การตั้งค่าเซิร์ฟเวอร์ Smtp ขณะนี้ผู้ให้บริการอีเมลฟรีบางรายไม่ได้ให้บริการ Smtp สำหรับอีเมลทั้งหมดอีกต่อไป เมื่อส่งอีเมล จะต้องตรวจสอบปัญหาการตรวจสอบผู้ใช้ Smtp หากเซิร์ฟเวอร์ Smtp อยู่บนเครื่องคอมพิวเตอร์ รวดเร็วมาก โดยพื้นฐานแล้วไม่ต้องกังวล หากไม่ใช่เซิร์ฟเวอร์ภายในเครื่อง จะเป็นการดีที่สุดที่จะไม่ใช้มันมากเกินไปเมื่อส่ง ปัญหาหนึ่งคือปัญหาความเร็ว และอีกอันอาจส่งอีเมลมากเกินไป คิดว่าเป็นสแปมและรหัสปฏิเสธการให้บริการเป็นดังนี้:
Private Sub Button1_Click (ผู้ส่ง ByVal As System.Object, ByVal e As System.EventArgs) จัดการ Button1.Click
Dim mailObj เป็น MailMessage ใหม่ ()
หรี่ smtp เป็น SmtpMail
'กำหนดชื่อของเซิร์ฟเวอร์ SMTP
smtp.SmtpServer = "smtp.XXX.com"
'กำหนดที่อยู่การส่งอีเมล
mailObj.From = "
[email protected] "
'กำหนดที่อยู่การรับอีเมล
mailObj.To = "
[email protected] "
'กำหนดที่อยู่ BCC ของอีเมล
mailObj.Bcc= "
[email protected] "
'กำหนดที่อยู่สำเนาคาร์บอนของอีเมล
mailObj.Cc = "
[email protected] "
'กำหนดหัวเรื่องของอีเมล
mailObj.Subject = "เรื่อง"
'กำหนดเนื้อหาของอีเมล
mailObj.Body = "เนื้อหาเมล!"
'อีเมลถูกส่งในรูปแบบ HTML'
mailObj.BodyFormat = MailFormat.Html
'กำหนดระดับจดหมายที่จำกัด ตั้งไว้ที่ระดับสูงที่นี่'
mailObj.Priority = MailPriority.สูง
'แนบเอกสารแนบไปกับอีเมลที่ส่ง
mailObj.Attachments.Add(ไฟล์แนบใหม่("c:aa.doc"))
smTp.Send(mailObj)
จบ Sub
3. ใช้ System.Net.Sockets ในการพัฒนาแอพพลิเคชั่น Windows ใน VB.NET หรือ C#
นอกจากนี้ยังขึ้นอยู่กับโปรโตคอล SMTP 1. ความรู้เบื้องต้นเกี่ยวกับโปรโตคอล SMTP
1. ไคลเอนต์สร้างการเชื่อมต่อ TCP/IP ไปยังเซิร์ฟเวอร์ผ่านพอร์ต 25 ของเซิร์ฟเวอร์: 220 server.com Simple Mail Transfer Service Ready
2. ไคลเอนต์ใช้คำสั่ง "HELO" เพื่อระบุไคลเอนต์ผู้ส่ง: HELO server.com
ฝั่งเซิร์ฟเวอร์: 250 server.com
3. ไคลเอนต์ส่งคำสั่ง MAIL และเซิร์ฟเวอร์ตอบสนองด้วยตกลงเพื่อระบุว่าพร้อมที่จะรับไคลเอนต์: MAIL FROM: <
[email protected] >
ฝั่งเซิร์ฟเวอร์: 250 ตกลง
4. ไคลเอ็นต์ส่งคำสั่ง RCPT เพื่อระบุผู้รับ และเซิร์ฟเวอร์จะตอบกลับว่ายินดีรับไคลเอ็นต์อีเมลสำหรับผู้รับหรือไม่: RCPT TO: <
[email protected] >
ฝั่งเซิร์ฟเวอร์: 250 ตกลง
5. หลังจากการเจรจาเสร็จสิ้น ให้ใช้คำสั่ง DATA เพื่อส่งไคลเอนต์อีเมล: DATA
ฝั่งเซิร์ฟเวอร์: 354 เริ่มอินพุตเมล: ลงท้ายด้วย <CRLF>.<CRLF>
6. ไคลเอนต์ลงท้ายเนื้อหาอินพุตด้วย . และส่งไปยังไคลเอนต์: เรื่อง: <CRLF>
เนื้อหา<CRLF>
.<CRLF>
7. ไคลเอนต์ออกโดยใช้คำสั่ง QUIT
ลูกค้า: ลาออก
ฝั่งเซิร์ฟเวอร์: 250 server.com ปิดช่องสัญญาณ
ข้อดี: คุณสามารถพัฒนาส่วนประกอบของคุณเองบนพื้นฐานนี้ได้ การใช้ Sockets ทำให้เราสามารถพัฒนาโปรแกรมเครือข่ายได้ ข้อเสีย: จำนวน
โปรแกรมค่อนข้างมาก
Dim sendData As String
Dim szData เป็นไบต์ ()
Dim CRLF เป็นสตริง
CRLF = "rn"
'สร้างการเชื่อมต่อไปยังพอร์ตเซิร์ฟเวอร์ 25
Dim SmtpServ เป็น TcpClient ใหม่ (txtsmtp.Text, 25)
lstlog.Items.Clear()
'แสดงข้อมูลเริ่มต้นของเซิร์ฟเวอร์
Dim NetStrm เป็น NetworkStream
NetStrm = SmtpServ.GetStream()
Dim RdStrm เป็น StreamReader ใหม่ (SmtpServ.GetStream())
ถ้า RdStrm.ReadLine() <> "" จากนั้น lstlog.Items.Add(RdStrm.ReadLine())
-
sendData = "เซิร์ฟเวอร์ HELO" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'ทำเครื่องหมายผู้ส่ง
sendData = "จดหมายจาก: " + "<" + txtfrom.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'ทำเครื่องหมายผู้รับ
sendData = "RCPT ถึง: " + "<" + txtTo.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'เตรียมส่งเนื้อหา
sendData = "ข้อมูล" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'ส่งหัวข้อ'
sendData = "เรื่อง: " + txtsub.Text + CRLF
'ส่งเนื้อหา
sendData = sendData + txtmsg.Text + CRLF
'สิ้นสุดการส่ง
sendData = sendData + "." + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'ออก
sendData = "เลิก" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write (szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'ปิดการเชื่อมต่อ
NetStrm.ปิด()
RdStrm.ปิด()
lstlog.Items.Add("การเชื่อมต่อปิด")
lstlog.Items.Add("ส่งสำเร็จ")
คุณยังสามารถอ้างถึง: การใช้ C# เพื่อสร้างส่วนประกอบการส่งอีเมล (SMTP)
http://www.aspcool.com/lanmu/browse1.asp?ID=968&bbsuser=csharp 4. CDONTS องค์ประกอบการส่งพื้นฐานที่มาพร้อมกับ IIS SMTP
คุณไม่จำเป็นต้องดาวน์โหลดโดยเฉพาะ Microsoft ได้จัดเตรียมส่วนประกอบนี้ไว้แล้ว ตราบใดที่มีการติดตั้ง 2000 SMTP ของ NT ก็จะมีส่วนประกอบดังกล่าว
ข้อดี: ส่วนประกอบต่างๆ มาจากระบบปฏิบัติการ ข้อเสีย: ฟังก์ชันการทำงานไม่ดีและความสามารถในการขยายขนาดไม่
ดี
Mymail.From = *** 'กล่องจดหมายของผู้ส่งจดหมาย
Mymail.To = *** 'กล่องจดหมายของผู้รับจดหมาย
Mymail.CC = *** 'สำเนาถึง
Mymail.BCC = *** 'ผูกการส่ง
Mymail.Subject = *** 'หัวเรื่องของจดหมาย
Mymail.Body = *** 'เนื้อความของตัวอักษร
'กำหนดลำดับความสำคัญ 0-ไม่สำคัญ 1-ทั่วไป 2-สำคัญ
Mymail ความสำคัญ = 2
Mymail.ส่ง()
Mymail = ไม่มีเลย
5. ใช้ส่วนประกอบ JMail
Jmail มีลักษณะดังต่อไปนี้:
(1) สามารถส่งไฟล์แนบได้
(2) ความสามารถในการบันทึกโดยละเอียดช่วยให้คุณตรวจสอบปัญหาได้
(3) กำหนดลำดับความสำคัญของการส่งอีเมล
(4) รองรับการส่งอีเมลได้หลายรูปแบบ เช่น การส่งอีเมลในรูปแบบ HTML หรือ TXT นี่เป็นองค์ประกอบฟรี
(5) ความสามารถในการส่งอีเมลลับ/(CC) สำเนาคาร์บอน/จดหมายด่วน;
(6) สิ่งที่สำคัญที่สุดคือ - ส่วนประกอบนั้นฟรีและคุณไม่จำเป็นต้องจ่ายเงิน ดังนั้นจึงคุ้มค่าที่จะใช้
เว็บไซต์:
http://www.dimac.net/ เวอร์ชันปัจจุบันคือ 4.3
คุณลักษณะทั่วไปของส่วนประกอบ JMail:
เนื้อความ อีเมล
การบันทึกการโทร การบันทึกบันทึกสำหรับการใช้งาน Debug
Priority ลำดับความสำคัญของอีเมล ตั้งแต่ 1 ถึง 5
ผู้ส่ง ผู้ส่ง
ที่อยู่เซิร์ฟเวอร์ ที่อยู่ IP หรือชื่อของเซิร์ฟเวอร์ SMTP
วิธีการทั่วไปของ
หัวเรื่องอีเมล
ส่วนประกอบ JMail:
AddAttachment ระบุไฟล์แนบ
AddRecipient เพิ่มผู้รับ
AddRecipientBCC สำเนาที่ซ่อน ซึ่งทราบเฉพาะผู้ส่งและผู้รับ BCC เท่านั้น
เพิ่มผู้รับ CC CC
หลังจากที่ Execute ส่งอีเมล
และเข้าใจคุณลักษณะและวิธีการที่จำเป็นแล้ว ส่วนที่เหลือจะได้รับอีเมลที่ผู้ใช้ป้อนและส่งผ่านเป็นพารามิเตอร์ไปยังวิธี AddRecipient จากนั้นกรอกแอตทริบิวต์ที่เหลือตามต้องการ และสุดท้ายก็ส่งพร้อมกับ Execute วิธี. ตัวอย่างเช่น:
Dim JMail
JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Logging = จริง
JMail.ServerAddress = "202.96.144.48"
JMail.Sender = "
[email protected] "
JMail.Subject = "หัวเรื่อง"
JMail.Body = "ร่างกาย"
JMail.AddRecipient("
[email protected] ")
JMail.AddAttachment("c:go.gif")
JMail.ลำดับความสำคัญ = 3
JMail.ดำเนินการ()
JMail = ไม่มี
ข้อมูลสรุป: โซลูชันใดให้เลือกขึ้นอยู่กับวัตถุประสงค์และความต้องการของโปรแกรม บทความนี้มีตัวอย่างหลายประการสำหรับการอ้างอิงของคุณ ตัวอย่างเช่น ซอฟต์แวร์ UFIDA U8 เรียกส่วนประกอบ Outlook และรวมเข้ากับซอฟต์แวร์ของตัวเอง ระบบการจัดการที่ฉันเขียน ฉันเขียนส่วนประกอบของตัวเอง (SMTP) มีประสิทธิภาพพอๆ กัน แต่เวลาในการเขียนโค้ดนานกว่า!