แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์

เริ่มโดย hmc2017, 01 สิงหาคม 2017, 00:46:20

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

hmc2017

เกริ่นนำ
ด้วยความจำเป็นที่ต้องใช้งานกับเจ้า Code ตัวนี้มาก เลยต้องศึกษาจากเว็บหลายๆ สำนัก ไม่ว่าจะเป็น เหล่าพี่น้อง TSB เว็บ ThaiCreate และอีกหลายเว็บ (เยอะมาก) นั่งงมไปมา จนก่อนหน้านี้ได้ตั้งกระทู้ไถ่ถามที่นี่ ก็ได้รับการช่วยเหลือเป็นอย่างดี จากท่านเทพทั้งหลาย แต่ปัญหาที่เกิดตามมา ไม่ว่าจะเป็น
1. SMTP -> ERROR: Failed to connect to server
2. gmail authentication failed

ซึ่งผมก็เชื่อว้าหลายท่าน (ที่คงยังไม่ได้เหมือนผม) เจอ Error นี้อย่างแน่นอน และยิ่งแก้ก็ยิ่งเจอ

เข้าเรื่อง
วันนี้เป็นอีกวันที่ต้องใช้งานส่วนนี้อย่างเร่งด่วน เพราะมันคือส่วนหนึ่งของงานลูกค้าที่ต้องทำ  เป็นไงเป็นกันต้องทำให้ได้ เลยเอาเว็บต้นฉบับทั้งไทยและเทศ มามิกซ์ (ซึ่งจริงๆ เว็บไทยเกือบ 70%) จนได้มาเป็น Script ส่งเมล์ตัวนี้ และได้ผ่านการทดสอบแล้วถึง 10 ครั้ง มั่นใจว่า ส่งเข้า INBOX 100% ไม่ลงถังขยะ (JungMail) แน่นอน

***** ออกตัวก่อนเลยนะครับ ผมไม่ขั้นเทพ PHP พอถูไถได้ นอกนั้นใช้ลักจำจากเว็บทั่วไปในเทคนิคต่างๆ ฉะนั้น จาก Script ถ้าท่านได้ ดู และ Download ไป หากสงสัยถามได้นะครับ แต่รวมๆแล้วก็คือผมงมมาจนได้ ไม่ได้ใช้ทักษะอะไรเลย ****


<?
require_once('PHPMailer/PHPMailerAutoload.php');
   $mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls"; //ตรงส่วนนี้ผมไม่แน่ใจ ลองเปลี่ยนไปมาใช้งานได้
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;  //ตรงส่วนนี้ผมไม่แน่ใจ ลองเปลี่ยนไปมาใช้งานได้
$mail->isHTML();
$mail->CharSet = "utf-8"; //ตั้งเป็น UTF-8 เพื่อให้อ่านภาษาไทยได้
$mail->Username = "[email protected]"; //ให้ใส่ Gmail ของคุณเต็มๆเลย
$mail->Password = "password"; // ใส่รหัสผ่าน
$mail->SetFrom = ('[email protected]'); //ตั้ง email เพื่อใช้เป็นเมล์อ้างอิงในการส่ง ใส่หรือไม่ใส่ก็ได้ เพราะผมก็ไม่รู้ว่ามันแาดงให้เห็นตรงไหน
$mail->FromName = "Sender Person"; //ชื่อที่ใช้ในการส่ง
$mail->Subject = "ทดสอบการส่งอีเมล์";  //หัวเรื่อง emal ที่ส่ง
$mail->Body = "ได้แล้วครับ หลังจากที่งมกับ Code นี้มานานแสนนาน</b>"; //รายละเอียดที่ส่ง
$mail->AddAddress('[email protected]','Recive Name'); //อีเมล์และชื่อผู้รับ

//ส่วนของการแนบไฟล์ ซึ่งทดสอบแล้วแนบได้จริงทั้งไฟล์ .rar , .jpg , png ซึ่งคงมีหลายนามสกุลที่แนบได้
$mail->AddAttachment("files/1.rar");
$mail->AddAttachment("files/2.rar");
$mail->AddAttachment("files/1.jpg");
$mail->AddAttachment("files/2.png");


//ตรวจสอบว่าส่งผ่านหรือไม่
if ($mail->Send()){
echo "ข้อความของคุณได้ส่งพร้อมไฟล์แนบแล้วจ้า";
}else{
echo "การส่งไม่สำเร็จ";
}
?>


Code ประมาณนี้ครับ ซึ่ง Include ไฟล์ PHPMailerAutoload.php มาใช้งาน (ห้ามถามว่าไฟล์นี้ทำงานอย่างไร อิอิ ตอบไม่ได้) ผมคอมเม้นท์เท่าที่ผมเข้าใจให้ครับ

ข้อสังเกตุและเงื่อนไขประเด็นอื่นที่ทำให้ Script นี้ทำงานโดยสมบูรณ์

1. ต้นฉบับจาก ThaiCreate แต่ไฟล์ class.smtp ไม่ทำงาน ผมเลยหาจาก Github มาลองเปลี่ยนดู ปรากฎว่าทำงาน (ห้ามถามว่าเพราะไร ไม่รู้ครับ มั่วเอา)
2. ผมลองทำตามแนะนำในวีดีโอของ Youtube ให้ไปปิดค่า //set_magic_quotes_runtime(0); และ  //set_magic_quotes_runtime($magic_quotes); ในไฟล์ class.phpmailer.php ซึ่งก็ได้ผล (ก็ห้ามถามนะครับ ไม่รู้อีกแหละ)
3. เข้าที่ https://myaccount.google.com/ เลือกที่ การลงชื่อเข้าใช้และความปลอดภัย แล้วเลื่อลงมาล่างสุดจะเห็น หัวข้อ อนุญาตแอปที่มีความปลอดภัยน้อย ให้ทำการเปิด (ซึ่ง Default มันจะเป็น ปิด)

ปรับแต่งเรียบร้อยก็ลองทดสอบดู ซึ่งผมอัพขึ้น HOST ทดสอบจริงๆ เลย ใช้งานได้ 100% เข้า กล่องข้อความ (Inbox) ทั้ง 10 การทดสอบชัวร์

ดาวน์โหลด : https://www.mediafire.com/?dmlh7ebiiovuyx7

หวังว่าคงเป็นประโยชน์สำหรับท่านที่ตามหามานาน หรืออาจจะแก้ไม่ตกสักที ถ้าเห็นว่าดีและมีประโยชน์ เติมพลังกดถูกใจให้หน่อยนะครับ

ปล. เดี๋ยวจะลองพัฒนาเชื่อมต่อกับฐานข้อมูลดูครับ ได้ยังไงจะนำมาแจกกันอีกรอบแระกันจ้า

ขอบคุณแหล่งที่มา ที่ทำให้มี Script ดีๆ อย่างนี้
- เพื่อนๆ พี่ๆ และ ข้อมูลในบอร์ด ThaiSeoBoard.com
- ThaiCreate.com
- https://www.youtube.com/watch?v=0lCTC_-bu4s
- https://www.youtube.com/watch?v=U13smZvdArI

:wanwan017: :wanwan017:
รับออกแบบป้ายโฆษณาสินค้า
ทำป้ายแบนเนอร์ ป้ายตารางแข่งขันฟุตบอลลีกต่างๆ
ดูแลแฟนเพจรายเดือน มีทีมงาน Support ตรงเวลา
รับตัดต่อวีดีโอ  เพื่อใช้ในการโปรโมทสินค้า
** มัดจำงานเริ่มต้นที่ 0-20% ***
Email : pmaster.engl[at]gmail.com

minigoood

█ 9EKRDP โหลดบิต อัพโฮสฝากไฟล์นอก
[direct=https://goo.gl/qgz71C]█ Google Drive[/direct]
[direct=https://ekcdn.me]█ ตัวเล่นหนัง[/direct] GDRIVE
[direct=https://goo.gl/tAFpfb]█ 9EKRDP ENCODING PLAN[/direct] เริ่มต้น 950 บาท
█ ผู้ให้บริการ Windows VPS, RDP Services ,Torrents and Files Upload !!

9arduino

สุดยอด ไปเลยครับเดี่ยวต้องขอลองดูบ้างแล้วครับ  :wanwan017:

buakaew

Affiliate ไทยจ่ายจริงกินหลายชั้นลึกหลากหลายผลิตภัณฑ์[direct=https://affiliateinthai.blogspot.com/]Affiliate ไทย[/direct]
รีวิว คูปองฟรี Hosting ไทยและเทศ[direct=https://www.hostingdee.com/]รีวิว Hosting[/direct]
ดูดวงออนไลน์ฟรี[direct=https://duduangfree.com/]ดูดวง[/direct]
พระเครื่องออนไลน์[direct=http://www.siampraboran.com/]พระเครื่อง[/direct]


DeGea






X ไม่รับปรึกษาเรื่องทำ Aff ใดๆ .
[direct=https://][/direct]

thaigopher

+ให้
ผมไม่ได้ใช้หรอกครับแต่ที่+ให้เพราะน้ำใจของท่านมากกว่า
รับปรึกษา เรื่องสตรีมมิ่ง
รับปรึกษาเรื่องถ่ายทอดสด
ให้เช่าเซิฟเวอร์ถ่ายทอดสด
บริการ WowzaStreaming แบบรายเดือนพร้อมเซิฟเวอร์
สามารถขอทดลองใช้ได้
ติดต่อ id line:gopherth
โทร:0954984333

HostSevenPlus

Hostsevenplus.com | จดทะเบียนถูกกฎหมาย |กะรันตี 10 ปีแห่งบริการเว็บโฮสติ้ง | พร้อมบริการตลอด 24 ชั่วโมง
Web Hosting | VPS Hosting | Reseller Hosting | Domain Name | Cloud Server | SSL Certificates
█ เลือกVersion PHPได้| สะดวกชำระหลายช่องทาง 7-ELEVEN/BiGC/Lotus/PaySbuy/PayPal&Credit Card
โทรศัพท์:0-80523-7840 | Line: @hostsevenplus| Email : [email protected]


markhacd

หากคุณกำลังมองหา[direct=http://www.xn--12c2ca0dl7dte2c.com]เครื่องสแกนลายนิ้วมือ[/direct] / [direct=http://www.xn--12c2ca0dl7dte2c.com/products_list_type.php?tid=2]เครื่องสแกนใบหน้า[/direct] / [direct=http://www.xn--12c2ca0dl7dte2c.com/index.php]สแกนนิ้ว[/direct] / [direct=http://www.xn--12c2ca0dl7dte2c.com/products_list_type.php?tid=1]สแกนนิ้วมือ[/direct] แนะนำบริษัทที่จำหน่ายสินค้าคุณภาพที่ [direct=http://www.xn--12c2ca0dl7dte2c.com]www.สแกนนิ้ว.com[/direct]

sinomoney

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

ผมคนนึงที่ ทดลองส่งเมล์ แบบ PHPMailer ส่งได้บ้างไม่ได้บ้าง

แบบงง ๆ อยู่เหมือนกันครับ
[direct=http://www.thaiseoboard.com/index.php/topic,438918.0.html]โปรแกรมโพสเว็บบอร์ด[/direct] ระบบโพสบน Server ไม่ต้องติดตั้ง ทดลองฟรี
[direct=https://backlink-seo.com]โปรแกรมทำ Backlink[/direct] CommentBlog ใช้งานบนเว็บ ทดลองฟรี

hmc2017

อ้างถึงจาก: sinomoney ใน 04 สิงหาคม 2017, 12:24:48
ขอบคุณมากครับ

ผมคนนึงที่ ทดลองส่งเมล์ แบบ PHPMailer ส่งได้บ้างไม่ได้บ้าง

แบบงง ๆ อยู่เหมือนกันครับ

:wanwan020: :wanwan020:
รับออกแบบป้ายโฆษณาสินค้า
ทำป้ายแบนเนอร์ ป้ายตารางแข่งขันฟุตบอลลีกต่างๆ
ดูแลแฟนเพจรายเดือน มีทีมงาน Support ตรงเวลา
รับตัดต่อวีดีโอ  เพื่อใช้ในการโปรโมทสินค้า
** มัดจำงานเริ่มต้นที่ 0-20% ***
Email : pmaster.engl[at]gmail.com

ANALOGY


musichost

##โฮสติ้ง ยุคนี้ หมดปัญหาเรื่อง Chmod 777, มี PHP 8.0/7.4 และ 5.6 - MariaDB 10
### จดโดเมน/Hosting/VPS ฟรีบริการย้ายข้อมูลเว็บ คลิกดูรายละเอียด ###

เว็บบอร์ด SMF ลงประกาศฟรี

userhuman

ขอบอกนิดนึงนะครับ ใช้ SMTP จะเพิ่มโอกาสที่มันจะไม่เข้า JUNK MAIL  :-[ แต่ไม่ใช้ว่าจะไม่เข้าเลย

จะมีประมาณ 2 -3 % ที่จะเข้า JUNK ครับ
[direct=https://meframephoto.com]รับอัดรูปออนไลน์ ขยายรูป ทำภาพเก่าให้ใหม่ ใส่กรอบรูป[/direct]

[direct=https://medium.com/@nicksq]อ่านเขียนโปรแกรมยังไงให้เทพ[/direct]

[direct=https://www.youtube.com/channel/UC1ZQ_Sxmrlv4dxIhB3LUwPA]สอนเขียนโปรแกรม และเทคนิคฟรี กด Subscribe & กระดิ่งไว้นะ[/direct]

Fallen

script ส่งเมล์นี้

1. ต่างกับ contact form ยังไงเหรอครับ เพราะ contact form มันส่งเข้าเมล์ได้เหมือนกันครับ
2. บาง contact form ไม่ include ไฟล์ก็ทำงานได้ ต่างกับอันนี้ยังไงเหรอครับ
3. ถ้าจะเพิ่ม การแนบไฟล์ ต้องทำอย่างไรครับ , แนบแบบหลยไฟล์ ผม งม มาสองวันเเล้ว

<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

:wanwan017:
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]

hmc2017

อ้างถึงจาก: Fallen ใน 04 สิงหาคม 2017, 14:20:37
script ส่งเมล์นี้

1. ต่างกับ contact form ยังไงเหรอครับ เพราะ contact form มันส่งเข้าเมล์ได้เหมือนกันครับ
2. บาง contact form ไม่ include ไฟล์ก็ทำงานได้ ต่างกับอันนี้ยังไงเหรอครับ
3. ถ้าจะเพิ่ม การแนบไฟล์ ต้องทำอย่างไรครับ , แนบแบบหลยไฟล์ ผม งม มาสองวันเเล้ว

<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

:wanwan017:


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

ข้อ 1 และ 2 Contact Form คือ ฟอรมในการกรอกข้อมูลติดต่อใช่มั้ย ที่จะมีทั้ง ผู้ติดต่อ หัวข้อ รายละเอียด และอีเมล์ ซึ่งเมื่อกด Submit แล้ว ก็ลงฐานข้อมูล หรือ ส่งเข้าอีเมล์ ศึ่งยังไงก็ต้องเขียน ส่งอีเมล์อยู่แล้ว มันไม่มีทุกสคริปนี่ครับ หรือผมเข้าใจผิด ผมไม่เคยใช้และไม่ถนัด CMS อย่างเช่น wordpress , smf เลยไม่รู้ว่า มันมีการรองรับตรงนี้หรือไม่

ข้อ 3 น่าสนครับ แต่ถ้าคิดออกตอนนี้เลย ผมคงสร้าง input file เพื่ออัพภาพและไฟล์ได้ 5 ช่อง และสร้างฟิลด์ในฐานข้อมูลเพื่อรับค่าไฟล์ 5 ชื่อ อย่างนี้หรือเปล่าครับ

ปล.มือใหม่จริงๆ ครับ เท่าที่ตอบได้

:wanwan017: :wanwan017:
รับออกแบบป้ายโฆษณาสินค้า
ทำป้ายแบนเนอร์ ป้ายตารางแข่งขันฟุตบอลลีกต่างๆ
ดูแลแฟนเพจรายเดือน มีทีมงาน Support ตรงเวลา
รับตัดต่อวีดีโอ  เพื่อใช้ในการโปรโมทสินค้า
** มัดจำงานเริ่มต้นที่ 0-20% ***
Email : pmaster.engl[at]gmail.com

เรารักนายนะน้องฟี่

ใน Wordpress เหมือนเคยใช้ gmail ส่งแบบ smtp แบบนี้อยู่เมื่อสองสามปีที่แล้ว ส่งได้ประมาณวันนึง 100-200 ฉบับได้มั้ง มันมีปลั๊กอินให้ แต่ไม่รู้ว่าตอนนี้ ยังใช้ได้รึป่าว

แต่ยังไงก็เยี่ยมไปเลยครับ เพราะ email นี่ชอบส่งไม่เข้า บางทีก็ช้ามั่ง ไม่เข้ามั่ง ติด junk มั่ง  :wanwan030: :wanwan030:

subport

เปลี่ยนจาก gmail ไปเป็นพวก sendgrid.com  เพราะเป็นกลุ่ม white domain  จะเข้า inbox ง่ายกว่าครับ ถ้าเอาชัวร์หรือแบบเป็น production 100% นี่ขอแนะนำ  
พวก uber,airbnb ก็ใช้เจ้านี้ ทางพวกเราเคยทำงานแนวระบบออกตั๋วสายการบิน ใช้ gmail เหมือนกันแต่ก็พบปัญหาเมล์ไม่ค่อยเข้าเลย
♦ เชี่ยวชาญระบบ Wordpress เป็นพิเศษ | ปรับแต่งและออกแบบธีม |  ปรึกษาฟรี ไม่ต้องเกรงใจ ทักได้ตลอด
♦ โดย [DIRECT=http://bit.ly/2vFvQHP]STOMS[/DIRECT] | โทร.061-569-9591

sangsood7


hmc2017

อ้างถึงจาก: Fallen ใน 04 สิงหาคม 2017, 14:20:37
script ส่งเมล์นี้

1. ต่างกับ contact form ยังไงเหรอครับ เพราะ contact form มันส่งเข้าเมล์ได้เหมือนกันครับ
2. บาง contact form ไม่ include ไฟล์ก็ทำงานได้ ต่างกับอันนี้ยังไงเหรอครับ
3. ถ้าจะเพิ่ม การแนบไฟล์ ต้องทำอย่างไรครับ , แนบแบบหลยไฟล์ ผม งม มาสองวันเเล้ว

<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

:wanwan017:


จัดให้ครับ ได้แน่นอน
ข้อ 3



<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

foreach($_FILES['uploads']['tmp_name'] as $key => $tmp_name)
        {
            $file_name = $key.$_FILES['uploads']['name'][$key];
            $file_size =$_FILES['uploads']['size'][$key];
            $file_tmp =$_FILES['uploads']['tmp_name'][$key];
            $file_type=$_FILES['uploads']['type'][$key]; 
            move_uploaded_file($file_tmp,"โฟลเดอร์ที่เก็บภาพ/".time().$file_name);

$mail->AddAttachment("โฟลเดอร์ที่เก็บภาพ/".time().$file_name);
        }


:wanwan003: :wanwan003:
รับออกแบบป้ายโฆษณาสินค้า
ทำป้ายแบนเนอร์ ป้ายตารางแข่งขันฟุตบอลลีกต่างๆ
ดูแลแฟนเพจรายเดือน มีทีมงาน Support ตรงเวลา
รับตัดต่อวีดีโอ  เพื่อใช้ในการโปรโมทสินค้า
** มัดจำงานเริ่มต้นที่ 0-20% ***
Email : pmaster.engl[at]gmail.com

Fallen

อ้างถึงจาก: hmc2017 ใน 05 สิงหาคม 2017, 10:42:44
อ้างถึงจาก: Fallen ใน 04 สิงหาคม 2017, 14:20:37
script ส่งเมล์นี้

1. ต่างกับ contact form ยังไงเหรอครับ เพราะ contact form มันส่งเข้าเมล์ได้เหมือนกันครับ
2. บาง contact form ไม่ include ไฟล์ก็ทำงานได้ ต่างกับอันนี้ยังไงเหรอครับ
3. ถ้าจะเพิ่ม การแนบไฟล์ ต้องทำอย่างไรครับ , แนบแบบหลยไฟล์ ผม งม มาสองวันเเล้ว

<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

:wanwan017:


จัดให้ครับ ได้แน่นอน
ข้อ 3



<form action='#' method='post' enctype='multipart/form-data'>
  <input name='uploads[]' type=file multiple>
  <input type='submit'>
</form>

foreach($_FILES['uploads']['tmp_name'] as $key => $tmp_name)
        {
            $file_name = $key.$_FILES['uploads']['name'][$key];
            $file_size =$_FILES['uploads']['size'][$key];
            $file_tmp =$_FILES['uploads']['tmp_name'][$key];
            $file_type=$_FILES['uploads']['type'][$key]; 
            move_uploaded_file($file_tmp,"โฟลเดอร์ที่เก็บภาพ/".time().$file_name);

$mail->AddAttachment("โฟลเดอร์ที่เก็บภาพ/".time().$file_name);
        }


:wanwan003: :wanwan003:

เอาใส่ตำแหน่งไหนเหรอครับ
:wanwan004:
[direct=https://www.cymiz.com/]ประกันภัย[/direct]
[direct=https://www.cymiz.com/promotion/]ประกันรถยนต์ พรบ มอเตอร์ไซต์ ราคาสมาชิก[/direct]
[direct=http://cymiz.com/].[direct=http://vir9.com].[/direct][/direct]