ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: hmc2017 ที่ 01 สิงหาคม 2017, 00:46:20



หัวข้อ: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 01 สิงหาคม 2017, 00:46:20
เกริ่นนำ
ด้วยความจำเป็นที่ต้องใช้งานกับเจ้า 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:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: minigoood ที่ 01 สิงหาคม 2017, 01:18:20
จะปิดให้ ดาวน์โหลดไหมครับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: 9arduino ที่ 01 สิงหาคม 2017, 06:13:15
สุดยอด ไปเลยครับเดี่ยวต้องขอลองดูบ้างแล้วครับ  :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: buakaew ที่ 01 สิงหาคม 2017, 08:03:18
ยอดเยี่ยม  :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: DeGea ที่ 01 สิงหาคม 2017, 08:46:39
กดบวกให้  :wanwan017: :wanwan003:
ปกติเช่า Service ใช้ .


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: thaigopher ที่ 01 สิงหาคม 2017, 09:22:49
+ให้
ผมไม่ได้ใช้หรอกครับแต่ที่+ให้เพราะน้ำใจของท่านมากกว่า


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: HostSevenPlus ที่ 01 สิงหาคม 2017, 09:45:11
+1 น้ำใจงดงามครับ 

 :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: markhacd ที่ 01 สิงหาคม 2017, 09:56:58
 :wanwan017: :wanwan017: :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: sinomoney ที่ 04 สิงหาคม 2017, 12:24:48
ขอบคุณมากครับ

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

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


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 04 สิงหาคม 2017, 12:40:46
ขอบคุณมากครับ

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

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

 :wanwan020: :wanwan020:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: ANALOGY ที่ 04 สิงหาคม 2017, 12:54:56
+ให้ครับ 12 > 13


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: musichost ที่ 04 สิงหาคม 2017, 13:10:24
 :wanwan017:  ขอบคุณคับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: userhuman ที่ 04 สิงหาคม 2017, 13:51:06
ขอบอกนิดนึงนะครับ ใช้ SMTP จะเพิ่มโอกาสที่มันจะไม่เข้า JUNK MAIL  :-[ แต่ไม่ใช้ว่าจะไม่เข้าเลย

จะมีประมาณ 2 -3 % ที่จะเข้า JUNK ครับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: 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:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 04 สิงหาคม 2017, 19:37:41
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:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: เรารักนายนะน้องฟี่ ที่ 04 สิงหาคม 2017, 20:34:26
ใน Wordpress เหมือนเคยใช้ gmail ส่งแบบ smtp แบบนี้อยู่เมื่อสองสามปีที่แล้ว ส่งได้ประมาณวันนึง 100-200 ฉบับได้มั้ง มันมีปลั๊กอินให้ แต่ไม่รู้ว่าตอนนี้ ยังใช้ได้รึป่าว

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


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: subport ที่ 04 สิงหาคม 2017, 20:43:55
เปลี่ยนจาก gmail ไปเป็นพวก sendgrid.com  เพราะเป็นกลุ่ม white domain  จะเข้า inbox ง่ายกว่าครับ ถ้าเอาชัวร์หรือแบบเป็น production 100% นี่ขอแนะนำ  
พวก uber,airbnb ก็ใช้เจ้านี้ ทางพวกเราเคยทำงานแนวระบบออกตั๋วสายการบิน ใช้ gmail เหมือนกันแต่ก็พบปัญหาเมล์ไม่ค่อยเข้าเลย


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: sangsood7 ที่ 04 สิงหาคม 2017, 21:52:47
ขอบคุณในน้ำใจมากๆครับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 05 สิงหาคม 2017, 10:42:44
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:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: Fallen ที่ 05 สิงหาคม 2017, 11:05:27
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:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: Fallen ที่ 05 สิงหาคม 2017, 11:13:59
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:

contact form มันจะส่งเข้าเมล์ได้เลยครับ (แต่ถ้าส่งเข้าฐานข้อมูลต้องเขียนเพิ่ม ปัจจุบันผมใช้แบบส่งเข้าเมล์เลยครับง่ายดีอ่ะ)

โค๊ดนี้ใช้ไฟล์เดียว ส่งรูปเข้าเมล์ได้เลยครับ
โค๊ด:
<?php
 
 error_reporting
(E_ALL);
 
ini_set('display_errors'1);
 
if(isset(
$_FILES) && (bool) $_FILES) {
  
$allowedExtensions = array("pdf","doc","docx","gif","jpeg","jpg","png","rtf","txt");

$files = array();
foreach($_FILES as $name=>$file) {
$file_name $file['name']; 
$temp_name $file['tmp_name'];
$file_type $file['type'];
$path_parts pathinfo($file_name);
$ext $path_parts['extension'];
if(!in_array($ext,$allowedExtensions)) {
die("File $file_name has the extensions $ext which is not allowed");
}
array_push($files,$file);
}

// email fields: to, from, subject, and so on
$to "เมล์ของคุณ";
$from "<<FROM EMAIL>>"
$subject ="test attachment"
$message "this is a test message";
$headers "From: $from";

// boundary 
$semi_rand md5(time()); 
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x"
 
// headers for attachment 
$headers .= "\nMIME-Version: 1.0\n" "Content-Type: multipart/mixed;\n" " boundary=\"{$mime_boundary}\""
 
// multipart boundary 
$message "This is a multi-part message in MIME format.\n\n" "--{$mime_boundary}\n" "Content-Type: text/plain; charset=\"iso-8859-1\"\n" "Content-Transfer-Encoding: 7bit\n\n" $message "\n\n"
$message .= "--{$mime_boundary}\n";
 
// preparing attachments
for($x=0;$x<count($files);$x++){
$file fopen($files[$x]['tmp_name'],"rb");
$data fread($file,filesize($files[$x]['tmp_name']));
fclose($file);
$data chunk_split(base64_encode($data));
$name $files[$x]['name'];
$message .= "Content-Type: {\"application/octet-stream\"};\n" " name=\"$name\"\n" 
"Content-Disposition: attachment;\n" " filename=\"$name\"\n" 
"Content-Transfer-Encoding: base64\n\n" $data "\n\n";
$message .= "--{$mime_boundary}\n";
}
// send
 
$ok mail($to$subject$message$headers); 
if ($ok) { 
echo "<p>mail sent to $to!</p>"
} else { 
echo "<p>mail could not be sent!</p>"

}

 
?>

 
<html>
<body>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="attach1"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>


แต่ ผมอยากทำแบบแนบได้ทีเดียวแบบหลายไฟล์ แต่ทำไม่เป็นครับ,รู้แต่ว่าต้องใช้ฟังก์ชั่นตัวนี้

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

กับตัวนี้

โค๊ด:
for($i=0;$i<count($_FILES['file']['name']);$i++){
if($_FILES["file"]["name"][$i]!= ""){ 
$strFilesName = $_FILES["file"]["name"][$i]; 
$strContent = chunk_split(base64_encode(file_get_contents($_FILES["file"]["tmp_name"][$i]))); 
$headers .= "--".$strSid."\n"; 
$headers .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; 
$headers .= "Content-Transfer-Encoding: base64\n"; 
$headers .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n"; 
$headers .= $strContent."\n\n"; 
}
}

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

 :wanwan004:



หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 05 สิงหาคม 2017, 17:04:25
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:



http://www.thaiseoboard.com/index.php/topic,397716.0.html
 :wanwan017: :wanwan003: :wanwan020:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: goragod ที่ 05 สิงหาคม 2017, 19:03:52
PHPMailer ล่าสุดดาวน์โหลดได้จาก https://github.com/PHPMailer/PHPMailer ครับ

ข้อจำกัดของการส่งผ่านบริการของ gmail คือ จำกัดการส่งเพียง 50 ฉบับต่อวัน แต่ข้อดีที่สำคัญคือ มันส่งผ่านฉลุย (เนื่องจาก gmail เป็นผู้ส่ง และมีชื่อเสียงอยู่แล้ว)


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: Fallen ที่ 05 สิงหาคม 2017, 19:05:29
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:



[url]http://www.thaiseoboard.com/index.php/topic,397716.0.html[/url]
 :wanwan017: :wanwan003: :wanwan020:


ขอบคุณครับ สำหรับน้ำใจ +

 :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: hmc2017 ที่ 05 สิงหาคม 2017, 23:24:37
PHPMailer ล่าสุดดาวน์โหลดได้จาก https://github.com/PHPMailer/PHPMailer ครับ

ข้อจำกัดของการส่งผ่านบริการของ gmail คือ จำกัดการส่งเพียง 50 ฉบับต่อวัน แต่ข้อดีที่สำคัญคือ มันส่งผ่านฉลุย (เนื่องจาก gmail เป็นผู้ส่ง และมีชื่อเสียงอยู่แล้ว)

ขอบคุณครับท่าน ติดตามเว็บท่านมาตลอดเหมือนกัน

50 ฉบับต่อวัน นี่ถ้าเป็น 50 ออเดอร์อีเมล์จากลูกค้า คงยิ้มแป้นน่าดูเลยครับ

 :wanwan017: :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: nonkungzacb ที่ 06 สิงหาคม 2017, 16:56:57
ขอบคุณครับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: armz1503 ที่ 01 กันยายน 2018, 09:26:31
ขอบคุณมากๆครับ  :wanwan008:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: COW ที่ 01 กันยายน 2018, 09:28:33
ขอบคุณครับ


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: bluecosmos ที่ 01 กันยายน 2018, 10:39:36
ขอบคุณครับ  :wanwan017:


หัวข้อ: Re: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
เริ่มหัวข้อโดย: seowork ที่ 01 กันยายน 2018, 11:44:07
น่าสนใจดีครับ ขอนำไปลองดูหน่อย ขอบคุณครับ