ทำFormmailด้วยColdfusion

[บทความนี้แต่งขึ้นเมื่อ Feb,2000 โดย Rittichart S.]

เคยได้ยินชื่อโปรแกรม Formmail กันบ้างไหมครับ? คาดว่าคงจะเคยกันแน่ๆ เพราะว่าโปรแกรม formmail นั้นเป้นที่นิยมใช้กันอย่างแพร่หลายในการทำเวบ ส่วนใหญ่มักจะใช้กันในหน้าที่อยากจะให้ผู้เข้าชมเวบนั้น เขียน comment หรือให้ทิ้งข้อมูลให้ทางเจ้าของเว็บติดต่อกลับไปอะไรทำนองนั้น จากนั้นข้อมูลที่กรอกลงในฟอร์มดังกล่าว ก็จะถูกส่งไปทาง E-mail ที่ระบุเอาไว้ในโปรแกรม..

จุดเริ่มต้นของ Formmail ก็คาดว่าน่าจะมาจากภาษา Perl และโปรแกรม sendmail บน Unixครับ และที่เห็นใช้กันเยอะๆ ก็น่าจะเป็น foammail ของนายMatt.

แต่ด้วยความที่พื้นที่ตรงนี้เป็น area ของ ColdFusion นาาครับ. พง เพิร์ล ไรนี่ก็ไปดูเอาที่อื่นเอาดิฮะ แฮะๆ 😛

บทความคราวนี้ผมจะขอเสนอวิธีการสร้าง Foammail ด้วย ColdFusion และยังขอ Value Added ลงไปอีกนีสสสนึงตรงที่ทำให้ฟอร์มนั้นเลือกผู้รับได้มากกว่าหนึ่งคน โดยจะใช้คุณสมบัติของ CFQUERY ที่เคยพูดไปแล้ว กับ TAG ใหม่ที่จะพูดถึงในคราวนี้นั่นคือ CFMAIL ครับ โดยที่เราจะเอา Database เก่าที่เราเคยสร้างเอาไว้ในบทความครั้งก่อนมาใช้กัน.

อันดับแรกให้เราดึงข้อมูลจาก Database มาสร้างเป็น Drop Down list พร้อมกับสร้าง form field ที่จำเป็นต่างๆเอาไว้

<!– Formmail.cfm –>
<CFQUERY Datasource =”cftest1″ Name=”Qto”>
SELECT Name,Email FROM Example001
</CFQUERY>

<html><head><title>my formmail</title></head><body>
<font size=”5″>ต๊าย..ตายจดหมายผิดซอง อิอิ..</font>
<form action=”formmail.cfm” method=”post”>
ส่งถึง : 
<select name=”to”>
<CFOUTPUT QUERY=”Qto”>
<option value=”#Email#“>#Name#
</CFOUTPUT></select><br>
From :
<input type=”text” name=”from” value=”Your@email.here”>
<br>
เนื้อความจดหมาย.<br>
<textarea cols=”40″ rows=”5″ name=”body”></textarea><br>
<input type=”submit” name=”send” value=”send”>
</form> 
</body></html>

เมื่อเราได้ส่วนของ Form เรียบร้อยแล้วต่อไปเราก็มาสร้างในส่วนของโปรแกรมที่ใช้ทำการส่ง E-mail ไปยัง e-mail address ที่ได้ถูกเลือกเอาไว้ใน form ที่สร้างไว้ตอนต้น โดยนำไปสอดแทรกเอาไว้ใน code ที่เขียนไว้ข้างต้นครับ ให้สังเกตุในส่วนที่เป็นสีแดง ซึ่งจะเป็นชุดคำสั่งที่เราจะนำมาแทรกเอาไว้.

<!– Formmail.cfm –>

<CFIF IsDefined(“Form.send”)>

<CFMAIL TO=”#FORM.to#”
FROM=”#Form.from#”
SUBJECT=”ใส่ชื่อ Subject ของ Email ที่ต้องการที่นี่”
TYPE=”HTML”
SERVER=”ใส่ smtp server ของ Hosting ที่คุณใช้ หรือใช้ของ ISP เช่นของ CS Internet ก็คือ mail.cscoms.com”
PORT=”25″>
#Form.body# 
</CFMAIL>

ส่งไปที่ <cfoutput><a href=”mailto:#Form.to#”>#Form.to#</a></cfoutput> เรียบร้อยแล้ว ขอบคุณที่ใช้บริการ

<CFELSE>

<CFQUERY Datasource =”cftest1″ Name=”Qto”>
SELECT Name,Email FROM Example001
</CFQUERY>

<html><head><title>my formmail</title></head><body>
<font size=”5″>ต๊าย..ตายจดหมายผิดซอง อิอิ..</font>
<form action=”formmail.cfm” method=”post”>
ส่งถึง : 
<select name=”to”>
<CFOUTPUT QUERY=”Qto”>
<option value=”#Email#“>#Name#
</CFOUTPUT></select><br>
From :
<input type=”text” name=”from” value=”Your@email.here”>
<br>
เนื้อความจดหมาย.<br>
<textarea cols=”40″ rows=”5″ name=”body”></textarea><br>
<input type=”submit” name=”send” value=”send”>
</form> 
</body></html>

</CFIF>

จากนั้นก็ทำการ SAVE ไฟล์ได้เลย ตามตัวอย่างผม SAVE ไว้ในชื่อ Formmail.cfm , จากนั้นก็ลองรันดูได้เลยครับ

ไม่ยากอีกแล้วใช่ไหมครับ แฮ่ๆ คุณอาจจะอยาก Edit หรือ Modify อะไรเพิ่มเติมก็ตามสบายเลยนะครับ ใน TAG CFMAIL นั่นยังมี Parameter ให้ใช้อีกหลายตัว ถ้าสนใจละก็ลองเปิด Help ของ ColdFusion ดูหรือจะลอง Email มาถามผมก็ได้ ยินดีครับ.

Download : Source code : Formmail.zip