พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
ASP programming / การส่งEmail
korakot_titla
korakot_titla
Mon 4 Sep 2006 09:41:45

รบกวนหน่อยนะครับคือผมได้ไปอ่าน Articles ที่ทำการส่ง email แต่เป็น asp.net รบกวนพี่ทีมงานช่วยเขียนบทความการส่งอีเมล์โดยใช้ภาษา asp หน่อยจะได้หรือป่าวครับ ขอบคุณมากครับ

Administrator
Mon 4 Sep 2006 10:45:26
การส่ง email ใน ASP นั้นจะต้องดูว่ามี component ใดรองรับครับ ซึ่ง ASP ก็มี CDOSYS เป็น mail component ที่ built-in มาด้วยครับ การใช้งานก็

<%
Set objMail = CreateObject("CDO.Message")
objMail.Subject = "Sending email with CDO"
objMail.From = "mymail@mydomain.com"
objMail.To = "someone@somedomain.com"
objMail.TextBody = "This is a message."
objMail.Send
set objMail = nothing
%>

ส่วนการส่งในรูปแบบ HTML ก็

<%
Set objMail = CreateObject("CDO.Message")
objMail.Subject = "Sending email with CDO"
objMail.From = "mymail@mydomain.com"
objMail.To = "someone@somedomain.com"
objMail.HTMLBody = "<h1>This is a message.</h1>"
objMail.Send
set objMail = nothing
%>

ถ้าต้องการแนบ CC และ BCC ก็ใส่
objMail.Bcc = "someoneelse@somedomain.com"
objMail.Cc = "someoneelse2@somedomain.com"

หรือถ้าต้องการส่งเว็บเพจก็ให้เปลี่ยน
objMail.HTMLBody หรือ objMail.TextBody เป็น
objMail.CreateMHTMLBody "http://forum.modoeye.com/module12-418.html"

หรือถ้าต้องการแนบไฟล์ไปก็เพิ่ม
objMail.AddAttachment "C:\image.jpg"
korakot_titla
korakot_titla
Wed 27 Sep 2006 16:58:36

รบกวนอีกนิดนะครับ

คือเกิด Error บรรทัดที่ 15
if not rs.EOF then
      do while not rs.EOF
            Set ObjMail=server.CreateObject("CDONTS.NewMail")'Error ตรงนี้ครับ
            ObjMail.From=Request.Form("subject1")
            ObjMail.To=rs("email")
            ObjMail.Subject=Request.Form("subject2")
            ObjMail.ContentBase=""
            ObjMail.Body=text
            ObjMail.BodyFormat=0
            ObjMail.MailFormat=0
            ObjMail.Send
            Set ObjMail=Nothing
      rs.MoveNext
      loop
      Response.Redirect "form_mail.asp"
end if

แล้วมีข้อความฟ้องมาตามนี้ครับ

Error Type:
Server object, ASP 0177 (0x800401F3)
Invalid class string
/SendEmail/Send_Mail.asp, line 15

ผมไม่ทราบว่าเป็นเพราะอะไรเหรอครับ หรือต้องมี component รบกวนหน่อยนะครับ

อีกอย่างนะครับโค้ดตามที่พี่ๆทีมงานให้มานี่ส่งไปแล้วแต่ไม่ได้รับรบกวนอีกหน่อยนะครับ

ขอบคุณมากครับ

Administrator
Wed 27 Sep 2006 19:55:28
1. อาจจะเป็นไปได้ว่า component ยังไม่ได้ถูก register ครับ
2. user ที่ใช้ในการ execute asp นั้นไม่มี permission ในการสร้าง component ครับ

ผมต้องขออภัยด้วยครับ ตามโค๊ดข้างบนน่าจะส่งได้ปกตินะครับ
korakot_titla
korakot_titla
Fri 29 Sep 2006 09:59:59

คือตอนนี้ผมลองนำโค้ดดังกล่าวไปวางไว้บน server แล้วพอรันก็รันได้นะครับไม่มี error แต่ทำไมส่งแล้วไม่ได้รับเมล์หรือว่าส่งไม่ได้ผมลองส่องเข้าเมล์ตัวเองดูนะครับ ช่วยรบกวนอธิบายหน่อยนะครับ แล้วเราสามารถดู component ได้อย่างไรบ้างครับ ขอบคุณมากครับ

korakot_titla
korakot_titla
Fri 29 Sep 2006 10:45:58

ผมได้อ่านตามบอร์ดต่างๆเค้าบอกว่าได้ตัว component นั้นจะติดมากับวินโดว์เลยแต่แน่นอนเลยว่าเครื่องผมไม่มีแนเพราะรันโปรแกรมทีรัยจะฟ้อง Error ตรงส่วนนี้ตลอดซึ่งผมก็ได้ลง IIS แล้วด้วยเหมือน ผมสามารถทำการเช็คได้อย่างไรว่าผมเครื่องผมมี component ที่สามารถส่งเมล์แบบ CDONTS.NewMail แล้วถ้าหากไม่มีสามารถทำการดาว์โหลดแล้วทำการติดตั้งได้อย่างไรบ้างครับ
รบกวนอีกทีนะครับ

Administrator
Sun 1 Oct 2006 02:28:59
ไม่ทราบว่าในเครื่องได้ทำการติดตั้ง mail server หรือยังครับ เนื่องจาก CDONT นั้นเป็น component ที่ต้องส่งเมล์ผ่าน SMTP Server ครับ

ส่วนที่ว่าส่งแล้วไม่ได้รับนั้นอาจจะต้องสอบถามทางผู้ให้บริการครับ ว่าเกิดจากสาเหตุใด เนื่องจากผู้ให้บริการแต่ละราย จะมีการตั้งค่าต่างๆไม่เหมือนกันครับ

ส่วนการ list asp information นั้นลองทดลองเหล่านี้ดูครับ ไม่แน่ใจว่าจะตรงใจหรือไม่ ผมไม่ได้ทดลองนะครับ
http://www.onewaymule.org/onewayscripts/scripts/aspinfo/#features
http://www.aspit.net/code/libraries/aspinfo.asp
http://atuin.frontier.fr/~fosco/aspinfo.asp
korakot_titla
korakot_titla
Tue 3 Oct 2006 13:23:49

ผมยังงงอยู่ทำไมถึงส่งไม่ได้ซึ่งตอนนี้เครื่องผมลง iis แล้วและก็ได้ทำการติดตั้ง component ของ cdont ที่ชื่อว่า cdonts.dll ไว้ใน system32 แล้วหลังจากนั้นผมก็รีสตาร์ทเครื่องพอหลังจากนั้นก็ลองรันโปรแกรมอีกทีก็สามารถแล้วลองส่งดูก็ไม่ติด Error ซึ่งก่อนหน้านั้นที่ยังไม่ได้ลง cdonts.dll มันจะ error ซึ่งพอรันแล้วไม่ติด error ก็คือส่งไปแล้ว แต่ทำไมอีเมล์ที่ส่งมาไม่ถึงครับ ไม่ทราบว่าเกิดจากปัญหาอะไรเหรอครับ หรือผมต้องไปเซตเครื่องอะไรเพิ่มเติมอีกรบกวนพี่ๆทีมงานอีกรอบนะครับ

ของคุณมารครับ

Administrator
Tue 3 Oct 2006 18:28:31
component เหล่านี้ไม่สามารถส่งเมล์ได้ด้วยตัวมันเองครับ เหมือนกับการเขียนในภาษาอื่นๆ จะต้องมี service ของ SMTP เพื่อใช้ในการส่ง E-mail ด้วยครับ
korakot_titla
korakot_titla
Wed 4 Oct 2006 13:35:18

ตอนนี้ผมเปลี่ยนมาใช้ Jmail แล้วซึ่งเมื่อผมลอลรันโปรแกรมที่ใช้ในการส่งเมล์ก็สามารถส่งได้นะครับแต่พอผมมาทำการรันโปรแกรมภายในองค์กรที่ผมทำงานอยู่ทำไมถึงส่งแล้วถึงไม่ได้รับเมล์ครับ ซึ่งผมได้ทำการเซต service ของ SMTP แล้วนะครับ มันมีส่วนหรือป่าวครับที่จะถูก Router ป้องกันไว้ไม่ให้ส่ง ถ้าเป็นอย่างที่สมมุติฐานเราสามารถแก้ไขได้อย่างไรดีครับ ซึ่งเครื่องที่ผมทดลองส่งแล้วส่งได้(ภายนอกองค์กร)ไม่มี Router ซึ่ทำการต่อตรงมาจากModem เลยครับ ผมรบกวนช่วยอธิบายให้ผมหน่อยนะครับ

ขอบคุณมากครับ

Administrator
Wed 4 Oct 2006 14:13:05
ถ้าคุณมี service SMTP แล้วให้ลองสร้าง USER แล้วลอง config outlook เพื่อทดลองส่งออกดูครับว่าไปหรือไม่ หรือไม่ลองทำการตรวจสอบ log ของ smtp service ดูครับว่ามีการ delivery ไปยังปลายทางหรือไม่ครับ
ส่วนถ้ามีการ block ของ router นั้นก็ทำเพียงทำการเปิด port 25 ที่ตัว router ครับ
korakot_titla
korakot_titla
Wed 4 Oct 2006 16:00:49

ตอนนี้ผมได้ลองเช็คดูโดยใช้ Outlook ส่งข้อมูลออกไปข้างนอกแต่ก็ส่งไม่ได้เหมือนกันแล้วผมก็ไปตรวจสอบดูอีก Server หนึ่ง(แอบดู) เป็นเซิฟเวอร์ที่ใช้ในการรับส่งอีเมล์จากภายนอกแล้วผมก็ลองใส่ mail server นั้นดูแล้วแต่กลับส่งไม่ได้ ตามที่ผมคิดนะครับผมต้องให้เค้าทำการ Relay แล้วเพิ่ม IP เครื่องผมเพื่อให้สามารถส่งออกไปได้ใช่หรือป่าวครับ แต่ถ้าเป็นเช่นนั้นผมไม่อยากจายุ่งกะ Server ของเค้านะครับเดวจาหาว่ายุ่งอีก ถ้าสมสันนิฐานถูกพี่ทีมงานผมรบกวนช่วยหาวิธีหรือแนะนำผมหน่อยนะครับ หรือไม่ก็รบกวนแนะนำ Mail Server ฟรีให้ผมหน่อยก็ดีนะครับ

ขอบคุณมากนะครับ

Administrator
Wed 4 Oct 2006 17:10:24
ที่ผมเห็นก็จะมี hMailServer ที่น่าใช้ที่สุดครับ แต่ยังไม่ได้ลองติดตั้งดูครับ
natt
natt
Wed 31 Jan 2007 21:55:09

CC. คือไรหรอครับ

Administrator
Wed 31 Jan 2007 22:31:44
CC (Carbon Copy) คือการสำเนาส่งไปยังอีเมล์ที่ระบุครับ
BCC (Black Carbon Copy) คือการแอบสำเนาถึงอีเมล์ที่ระบุครับ
asp
asp
Thu 10 Jan 2008 11:42:34
ขอบคุณมากครับ สำหรับ code
mail
mail
Fri 15 Feb 2008 12:02:53
เกิดปัญหาว่าส่งแล้วไม่ได้รับเหมือนกัน ทำไงดี
webmaster
webmaster
Fri 15 Feb 2008 16:29:05
ตรวจสอบดูที่ smtp ของคุณครับว่ามีเมล์ตกค้างหรือไม่ ตรวจสอบ log ของ smtp ครับว่ามีปัญหาใด
mail
mail
Sat 16 Feb 2008 11:53:05

จะตรวจสอบได้จากที่ไหน รบกวนขอขั้นตอนด้วยได้รึป่าว เพิ่งเคยเขียนครั้งแรกน่ะ

webmaster
webmaster
Sun 17 Feb 2008 11:38:16
ต้องดูว่าคุณใช้ smtp ตัวไหนครับลองอ่านเอกสารของเขาดูครับ
korakot_titla
korakot_titla
Mon 10 Mar 2008 19:59:06

รบกวนหน่อยนะครับคือตอนนี้ผมกลับมาดูโค้ดในการส่งเมล์อันเดิม(ข้างบนสุด)ผมได้ลองแล้วสามารถส่งได้แต่เมล์บริษัทของผมเท่านั้นแต่ถ้าลองส่งออกไปทาง yahoo หรือ hotmail ไม่สามารถส่งได้เลยครับเปนเพราะสาเหตุอะไรเหรอครับ หรือว่าต้องเพิ่มโค้ดอะไรเข้าไปอีกรบกวนพี่ๆทีมงานอีกทีนะคับ ขอบคุณมากคับ

webmaster
webmaster
Mon 10 Mar 2008 21:40:40
ถ้าส่งถึง account ใน server ได้แต่ไม่สามารถส่งออกได้ ให้ลองตรวจสอบ SMTP ดูครับ ลองอ่าน log ดูว่าเกิดอะไรขึ้น เนื่องจาก asp ก็จะเหมือน php เมื่อมีการสั่งให้ส่งจะทำการส่งค่าไปยัง SMTP server ให้ทำการส่งไปยังปลายทางอีกที ดังนั้นให้ลองไล่ log ดูครับว่าเกิดปัญหาใดครับ
thanu
thanu
Wed 26 Mar 2008 15:41:37

การไล่ log คือให้ไล่ในส่วนไหน   ถ้าส่วนของ SMTP Server ขอถามต่อว่า SMTP ที่เครื่องไหนเครื่องเราหรือเครื่อง Mail Server ครับ (กรณีบริษัทมีเครื่อง mail server ของ linux ครับ)

webmaster
webmaster
Thu 27 Mar 2008 10:03:31
ถ้ามี SMTP Server มี relay server ก็ต้องดู log ทั้ง 2 ที่ครับ
bit69
bit69
Wed 28 May 2008 09:18:59
รบกวนสอบถามเรื่องการส่งเมล์แบบอัตโนมัตินะครับ คือตอนนี้ผมเขียนเว็บหน้าสำหรับส่งไว้เรียบร้อยแล้วแต่เราต้องทำการรันหน้านั้นทุกๆเช้า ผมก็เลยมีแนวคิดว่าเอาหน้านั้นแล้วให้ตั้ง schedule ให้กับ server รันตอน 8 โมงเช้าของทุกวัน แต่ตรง server จะสามารถตั้งได้เฉพาะที่ไฟล์ที่เปนแบบ bat หรือ exe ผมก็เลยเขียนแบตไฟล์ขึ้นมาแต่ก็ติตหลายอย่าง เช่น ไม่สามารถกำหนด url ให้ได้ เพราะตอนรันจะเปน c:\folder มันไม่ใช่ localhost/ชื่เว็บเรา ก็เลยทำให้รันหน้าที่เราสร้างไว้ไม่ได้ ไม่ทราบว่าพอจะมีวิธีการที่ดีกว่านี้หรือป่าวครับ รบกวนหน่อยนะครับ
webmaster
webmaster
Wed 28 May 2008 13:46:07
ถ้าเก่งเขียน batch ไฟล์ก็สามารถทำได้ครับ โดนการเขียนให้เรียกโปรแกม iexplore.exe โดยผ่านค่า url ที่ต้องการเป็น argument ครับ อย่าลืมใน double-quote คร่อมด้วยนะครับ

แต่ถ้าเป็นเครื่อง server ที่เปิดทิ้งไว้ตลอดก็จะเกิด IE หลายหน้าต่างเปิดทิ้งไว้ตามจำนวนครั้งที่ถูกเรียก

แต่ลองเอาอันนี้ไปดูครับ

Run("C:Program FilesInternet Exploreriexplore.exe")
WinWait("Dark Throne (beta) Recruitloop - Microsoft Internet Explorer")
Global $Paused
HotKeySet("{ESC}", "Pause")


While 1
If PixelGetColor(600, 500) = 0 And StatusbarGetText("Dark Throne (beta) Recruitloop - Microsoft Internet Explorer") = "Done" Then
MouseClick("Left", 566, 388, 1)
EndIf
WEnd

While 2
If PixelGetColor(600, 500) = 0 And WinGetText("Dark Throne (beta) Recruitloop - Microsoft Internet Explorer", "Due to players using automated programs which hurt our site, refreshing has been disabled. Please use the recruit! button on the recruiter. Click here to continue") Then
MouseClick("Left", 577, 484, 1)
EndIf
WEnd

While 3
If PixelGetColor(600, 500) = 0 And WinGetText("Dark Throne (beta) Recruitloop - Microsoft Internet Explorer", "You have already clicked the maximum number of members for today") Then
MsgBox(48, "Done", "You have finished Clicking!")
EndIf
WEnd


Func Pause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Paused', 0, 0)
WEnd
ToolTip("")
EndFunc ;==>Pause

เขาว่าเป็น script autoclick น่าจะเอามา apply ในการสั่งปิดหน้าต่างได้ครับ

แต่ก่อนผมต้องการ run web application ระดับวินาทีก็เลยเขียน program command line ง่ายๆ ขึ้นมาช่วยแทน Schedule Task อีกที
korakot_titla
korakot_titla
Mon 30 Jun 2008 21:55:42

รบกวนหน่อยนะครับผมลองใช้โค้ดด้านล่างนี้ครับ

<%
Set objMail = CreateObject("CDO.Message")
objMail.Subject = "Sending email with CDO"
objMail.From = "mymail@mydomain.com"
objMail.To = "someone@somedomain.com"
objMail.TextBody = "This is a message."
objMail.Send
set objMail = nothing
%>

ตามหลักน่าจะส่งได้นะครับ แต่ทำไมส่งไม่ได้ ตอนแรกผมไม่แน่ใจว่ามาจากโค้ดตัวนี้หรือป่าวผมส่งแล้วรอสักสองสามวันมันถึงจะมานะครับผมก็เลยแปลกใจ แต่พอมาทดลองอีกทีคราวนี้ไม่มาเลย ผมลอง config โดยใช้ Outlook แล้วนะครับ SMTP ที่ส่งทำงานได้ปกติดดีครับ ผมไม่แน่ใจผมต้องใส่ SMTP Server ด้วยหรือป่าวครับ ถ้าใช่ต้องใส่ตรงไหนเหรอครับ รบกวนขอตัวอย่างการส่งแบบที่ผมคาดว่าจะเป็นปัญหาอยู่ตอนนี้ด้วยนะครับ ขอบคุณมากครับ

webmaster
webmaster
Mon 30 Jun 2008 22:12:01
อืมก็น่าจะส่งได้นี่ครับ account ผู้ส่งมีอยู่จริงหรือไม่ครับ ปัญหาอื่นยังนึกไม่ออกครับ ตัวอย่างลองดูได้ที่นี่ครับ
http://www.w3schools.com/asp/asp_send_email.asp
http://www.paulsadowski.com/WSH/cdo.htm
korakot_titla
korakot_titla
Mon 30 Jun 2008 22:26:58

ขอบคุณมากครับสำหรับคำแนะนำ

Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login