ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingแจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์
หน้า: 1 [2]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: แจก PHP ส่ง Gmail ด้วย SMTP เข้า INBOX ทุกเมล์พร้อมแนบไฟล์  (อ่าน 12379 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« ตอบ #20 เมื่อ: 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

บันทึกการเข้า

hmc2017
Newbie
*

พลังน้ำใจ: 21
ออฟไลน์ ออฟไลน์

กระทู้: 77



ดูรายละเอียด
« ตอบ #21 เมื่อ: 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
บันทึกการเข้า

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

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 221



ดูรายละเอียด
« ตอบ #22 เมื่อ: 05 สิงหาคม 2017, 19:03:52 »

PHPMailer ล่าสุดดาวน์โหลดได้จาก https://github.com/PHPMailer/PHPMailer ครับ

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

Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« ตอบ #23 เมื่อ: 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



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


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

 wanwan017
บันทึกการเข้า

hmc2017
Newbie
*

พลังน้ำใจ: 21
ออฟไลน์ ออฟไลน์

กระทู้: 77



ดูรายละเอียด
« ตอบ #24 เมื่อ: 05 สิงหาคม 2017, 23:24:37 »

PHPMailer ล่าสุดดาวน์โหลดได้จาก https://github.com/PHPMailer/PHPMailer ครับ

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

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

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

 wanwan017 wanwan017
บันทึกการเข้า

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

พลังน้ำใจ: 61
ออฟไลน์ ออฟไลน์

กระทู้: 2,038



ดูรายละเอียด
« ตอบ #25 เมื่อ: 06 สิงหาคม 2017, 16:56:57 »

ขอบคุณครับ
บันทึกการเข้า
armz1503
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 1



ดูรายละเอียด
« ตอบ #26 เมื่อ: 01 กันยายน 2018, 09:26:31 »

ขอบคุณมากๆครับ  wanwan008
บันทึกการเข้า
COW
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 105
ออฟไลน์ ออฟไลน์

กระทู้: 1,947



ดูรายละเอียด เว็บไซต์
« ตอบ #27 เมื่อ: 01 กันยายน 2018, 09:28:33 »

ขอบคุณครับ
บันทึกการเข้า

bluecosmos
คนรักเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 128



ดูรายละเอียด เว็บไซต์
« ตอบ #28 เมื่อ: 01 กันยายน 2018, 10:39:36 »

ขอบคุณครับ  wanwan017
บันทึกการเข้า

seowork
ก๊วนเสียว
*

พลังน้ำใจ: 16
ออฟไลน์ ออฟไลน์

กระทู้: 250



ดูรายละเอียด
« ตอบ #29 เมื่อ: 01 กันยายน 2018, 11:44:07 »

น่าสนใจดีครับ ขอนำไปลองดูหน่อย ขอบคุณครับ
บันทึกการเข้า
หน้า: 1 [2]   ขึ้นบน
พิมพ์