พยายามรื้อแงะแกะเกาไอ้ไฟล์ตัวนี้แล้ว แต่ยังไม่ประสบความสำเร็จ
พอดีเจองานที่ต้องแก้ Flash โดยที่ลูกค้าขอให้ใส่ Form Mail เข้าไปเพิ่ม (จริงๆหาเรื่องงานเข้าให้ตัวเองแท้ๆ)
ทีแรกก็คิดว่าง่ายๆอ่ะนะ ไปหา Source มาไล่อยู่ 2-3 เจ้า ก็ยังทำไม่ได้
พอดีลูกค้าไม่ได้เร่งงานอะไรมาก (ถ้าทำไม่ได้ สุดท้ายคงจ้างคนที่ทำเป็นทำอ่ะแหล่ะ)
แต่ทีนี้อยากจะรู้เอง ว่ามันเพราะอะไร และทำยังไง
ไฟล์ต้นฉบับอยู่ด้านล่างครับ จากเว็บ Kirupa
ประกอบไปด้วยไฟล์ .FLA (ที่เป็นโครงฟอร์มเมล์) และตัว Email.php (ที่เป็นโปรแกรมส่งเมล์)
ปัญหาก็คือมันส่งเมล์ไม่ไป :37: ลองไล่แล้วไล่อีก คิดว่าไม่มีอะไรแล้ว แต่มันก็ยังส่งไม่ไป
อยากจะรู้ปัญหาว่ามันเพราะอะไร แค่นั้น (รู้สึกไฟล์ที่แจกตัวนี้ จะมีคนที่เจอปัญหาเดียวกับผมอยู่มากมาย)
โครงสร้างของไฟล์ Flash ตัวนี้ เป้นในรูปแบบง่ายๆ
1.) ตัวโครงสร้างเขาจะทำ Form ทั้งหมดเป็น MC (movie clip) โดยตั้งชื่อว่า "form"
โดยจะมี Fill ด้านในประมาณ 3-4 Fill ซึ่งกำหนดชื่อ Variable เอาไว้ในแต่ละ Fill
2.) ตัว Button จะมีคำสั่งส่งค่า Var ของ Fill ทั้งหมดที่อยู่ใน MC ชื่อ "form" ไปยังไฟล์ email.php
เท่าที่ดูมันไม่น่าจะผิดอะไร หรือว่าผิดแต่ไอ้เราโง่ก็ไม่รู้ :47:
มาที่ตัวไฟล์ email.php
ผมตะหงิดว่ามันอาจจะผิดที่ตัวนี้รึเปล่าไม่รู้
ตามหลักการง่ายๆ แค่เปลี่ยนชื่อ Email ที่เราต้องการให้ส่งถึง กับชื่อ Subject ก็น่าจะใช้การได้แล้ว
แต่ก็ยังใช้ไม่ได้ ....ลองปรับไฟล์ email.php บน Hosting ให้เป็น "777" ก็ยังไม่ได้อยู่ดี
สำหรับ php คือจนปัญญาที่จะงมกับมันนะ ค่อนข้างไม่ถนัดโปรแกรมเท่าที่ควร
อันนี้คือ code ไอ้ตัวสีแดงนี่คือให้ใส่ email ที่เราต้องการส่งหา กับชื่อหัวข้อที่บอก
อ้างอิง
<?php
/***************************************************\
* PHP 4.1.0+ version of email script. For more
* information on the mail() function for PHP, see
* http://www.php.net/manual/en/function.mail.php
\***************************************************/
// First, set up some variables to serve you in
// getting an email. This includes the email this is
// sent to (yours) and what the subject of this email
// should be. It's a good idea to choose your own
// subject instead of allowing the user to. This will
// help prevent spam filters from snatching this email
// out from under your nose when something unusual is put.
$sendTo = "chung@hotmail.com";
$subject = "My Flash Email";
// variables are sent to this PHP page through
// the POST method. $_POST is a global associative array
// of variables passed through this method. From that, we
// can get the values sent to this page from Flash and
// assign them to appropriate variables which can be used
// in the PHP mail() function.
// header information not including sendTo and Subject
// these all go in one variable. First, include From:
$headers = "From: " . $_POST["firstName"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n";
// next include a replyto
$headers .= "Reply-To: " . $_POST["email"] . "\r\n";
// often email servers won't allow emails to be sent to
// domains other than their own. The return path here will
// often lift that restriction so, for instance, you could send
// email to a hotmail account. (hosting provider settings may vary)
// technically bounced email is supposed to go to the return-path email
$headers .= "Return-path: " . $_POST["email"];
// now we can add the content of the message to a body variable
$message = $_POST["message"];
// once the variables have been defined, they can be included
// in the mail function call which will send you an email
mail($sendTo, $subject, $message, $headers);
?>
ไอ้ตัวนี้คุ้นๆ ครับ :08: เหมือนจะเคยใช้มาก่อน
แต่จำไม่ได้ว่าในที่สุดก็เปลี่ยนไปใช้ตัวอื่นหรือเปล่าเหมือนกัน
พี่ฉึ่งลองให้มันส่งไปที่ gmail ยังครับ เผื่อ hotmail มันตีเป็น junk
(แต่ถ้ามันตีเป็น junk จริงๆ ก็คงเป็นอันว่าไม่เวิร์กล่ะ)
ไอ้ตัวนี้มีปัญหาอีกอย่างคือมันจะไปเข้า Junk อ่ะแหล่ะ แต่ทีนี้ยังทำให้มันส่งไม่ได้ คือปัญหา
ตอนนี้ลองเขียนเองอยู่อีกวิธี ดีที่ลูกค้าไม่เร่งมาก เลยมีเวลางมหน่อย :27:
Action Script สำหรับ form mail
http://www.thaiflashdev.com/home/index.php?topic=1511.0 (http://www.thaiflashdev.com/home/index.php?topic=1511.0)
ต้องมีเมลล์เซอร์เวอร์ด้วยนะครับ
ทำไมมันยากกว่าที่คิดแฮะ ว่าจะทำซักหน่อยอดเรยตู
T T เวบพอร์ต ไม่มี contact ยังไงไม่รู้ไว้ผมจะหาทางต่อไป
:23:
ถ้าทดสอบในเครื่องตัวเองต้องลง Mail Server ด้วยครับ ไม่งั้นมันจะส่งไม่ไปตอนนี้ผมใช้ตัว ArGoSoft อยู่ครับ หรือไม่ก็เอาไปลองที่ Server จริงเลยก็ได้ครับ
ผมทดสอบบน host ที่ผมใช้มันก็ส่งผ่านนะครับ
สงสัยว่า server ที่ใช้นี่รองรับ php และเค้ายอมให้ส่งเมลผ่าน php ใช่ไหมครับ
ผมว่าทดสอบส่งเมลก่อนดีกว่าครับ โดยลองสร้างไฟล์ตามนี้ เซฟใส่ชื่อ testmail.php (จริงๆอะไรก็ได้ครับ)
<?php
if(mail("chung@hotmail.com","TEST MAIL FROM PHP SCRIPT","JUSTทดสอบ TEST","From: chungxxx@hotmail.com"))
echo "Sent";
else echo "Not Sent";
?>
แล้วลองเรียกไฟล์นี้ผ่านเว็บเบราเซอร์ดูครับ ถ้าขึ้นมา Sent ก็แสดงว่าส่งได้ เดี๋ยวยังไงผมจะมาช่วยหาอีกทีนะครับ
ตกลง แก้ไขได้ไม๊ครับ ผมก็เจอปัญหา คล้าย ๆ กัน คือส่งเมล์ไม่ไปเหมือนกัน
ผมก็เพิ่งจะเคยลอง เขียน Form Flash CS3 + PHP ก็เจอปัญหาอย่างที่ว่านี่หละครับ
อ้อ..ส่วน โค๊ด testmail.php ของคุณ dogdoyx
ผมลองที่ host ที่ผมใช้งานอยู่ มันแสดงผลอย่างนี้ครับ
Warning: mail(): Failed to connect to mailserver at "smtp.besthost19.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in d:\ip1\saunaplace.net\www\test\testmailform.php on line 2
Not Sent
เข้าใจว่าน่าจะเกี่ยวข้องกับ SMTP ของ Host ที่ใช้งานอยู่
ยังไงรอผู้รู้ช่วยไขข้อข้องใจด้วยครับ.. :42:
บาง host เค้าจะมีการ set SMTP ที่แตกต่างออกไป เช่นไม่ได้ใช้ localhost หรือว่ากัน port 25 หรือ etc.
ตรงนี้คิดว่าต้องลองเช็คกับ admin ของ host ที่ใช้ ส่วนใหญ่ที่เคยเจอเค้าก็จะมีวิธี set แบบอ้อมให้มันใช้ได้
ทั้งนี้ก็ขึ้นกับระบบความปลอดภัยของ host ที่เค้าตั้งไว้ครับ
ปกติผมใช้ตัวนี้เลยครับ ทดสอบแล้วใช้งานได้ๆ
ส่วนที่มันลง Junk ลองแก้ตรง
$headers = "From: " . $_POST["firstName"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n";
ให้เป็นอีเมลที่เรารู้จักอะครับ หรืออีเมลตัวเองก็ได้
ที่มันลง Junk เพราะมันไม่รู้จักอีเมลคนส่งมาอะครับ
ขอบคุณมากครับสำหรับคำแนะนำ ของคุณ X Saint และอาจารย์ก่อ(กำลังจะเป็นอาจารย์เดือนหน้าแล้วนิ..ดัน ๆ)
แบบว่ารอเช็คมาหลายวันแล้ว..
ไอ้เรื่อง ขอให้ Hosting ช่วย Set SMTP ให้นี่..ผมหนักใจชะมัดเลย ส่งเมล์ไปแจงประมาณ 4 วันแล้วยังเฉย...
ผมจะรอดูอาทิตย์หน้าเนี๊ยะ ถ้าไม่ได้ คงเปลี่ยนที่ใหม่แล้วหละ
มีที่ไหน ที่ดี ๆ ราคาพอประมาณ แล้วก็ไม่มีปัญหาอย่างนี้บ้างไม๊ครับ ช่วยแนะนำกันหน่อยนะ...
ขอบคุณนะครับ.. :12:
..ของพี่โอ้เอ้เลยครับ :12:
(พี่โอ้เอ้ ขอค่าสปอนเซอร์หลังไมค์ด้วยนะครับ)
อ้างคำพูดจาก: นายก่อ เมื่อ 22 ก.ย. 2008, 01:10 น.
..ของพี่โอ้เอ้เลยครับ :12:
(พี่โอ้เอ้ ขอค่าสปอนเซอร์หลังไมค์ด้วยนะครับ)
ขอ link ของเวบให้หน่อยได้ไม๊ครับ แบบว่า Host ที่เช่าอยู่กำลังจะหมดสิ้นเดือนนี้อะ
วันนี้ผมโทรไปคุยกับ Technician Support เค๊าก็บอกว่าเดี๋ยวจัดการให้ แล้วให้ผมรอ
การติดต่อทั้งเมล์ ทั้งทางโทรศัพท์ ก็รอไปเถอะ...ยังไม่ติดต่อมาเลย เซ็งจัง...
ช่วยรบกวนแนะนำด้วยครับ ขอบคุณมากๆครับ...
โอ๊วว ขอบคุณมากครับ โพสเอาไว้แล้ว ไม่ได้ดูกระจู๋นี้พักใหญ่
ไปๆมาๆก็ไม่ได้ทำไอ้ Form เมล์ใน Flash แล้วครับ พอดีลูกค้าดันเปลี่ยนใจอยากได้ Webboard พวก forum แทน
แต่เดี๋ยวว่างๆจะลองงม ทำลองดูเล่นๆครับ (เพราะอยากจะทำเป็นเหมือนกัน)
อ้างคำพูดจาก: kit58 เมื่อ 22 ก.ย. 2008, 21:48 น.
ขอ link ของเวบให้หน่อยได้ไม๊ครับ แบบว่า Host ที่เช่าอยู่กำลังจะหมดสิ้นเดือนนี้อะ
วันนี้ผมโทรไปคุยกับ Technician Support เค๊าก็บอกว่าเดี๋ยวจัดการให้ แล้วให้ผมรอ
การติดต่อทั้งเมล์ ทั้งทางโทรศัพท์ ก็รอไปเถอะ...ยังไม่ติดต่อมาเลย เซ็งจัง...
ช่วยรบกวนแนะนำด้วยครับ ขอบคุณมากๆครับ...
www.facthosting.com ครับ
อูย...
ทาง Host เค้าแก้ปัญหาให้แล้วครับ ผมทดสอบแล้ว ก็โอเค..ส่งได้
เรื่องของเรื่อง ก็คือต้องแจ้งทาง Hosting ให้ configure ค่า smtp ให้นั่นหละครับ
ถึงจะใช้งานฟอร์มเมล์ของเราได้..แต่ผมก็เจอปัญหาใหม่อีกหละ คือเวลาที่เมล์ส่งไป
ถึงที่เมล์ Server ของเวบเรา(ผมใช้ Outlook 6 ในการเช็คเมล์นะครับ) ผลที่ได้คือ
มันแสดงทั้งภาษาไทยและภาษาต่างดาวเลย แก้ Encode เป็น
Content-type: text/html; charset=windows-874 หรือ UTF8 ก็ไม่หายครับ
ทำไงต่อดีหละครับเนี๊ยะ....
อ้อ..สำหรับ Hosting ใหม่ที่แนะนำของ..คุณโอ้เอ้..ต้องขอขอบคุณมากครับ
ผมกำลังจะจดทั้งโดเมนใหม่และเช่า Hosting ใหม่อย่างน้อย 2 ชื่อภายใน 2-3
เดือนนี้ แล้วจะติดต่อไปสอบถามรายละเอียดเพิ่มเติมอีกครั้งนะครับ.... :12:
เมลล์จากฟอร์มเหรอครับ
ลองเซทค่า encoding ที่ใช้ในการส่งก่อนนะครับ