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

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

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

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

Fallen

อ้างถึงจาก: hmc2017 ใน 04 สิงหาคม 2017, 19:37:41
อ้างถึงจาก: 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:

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:

[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 ใน 05 สิงหาคม 2017, 11:05:27
อ้างถึงจาก: 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:


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

goragod

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

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

Fallen

อ้างถึงจาก: hmc2017 ใน 05 สิงหาคม 2017, 17:04:25
อ้างถึงจาก: Fallen ใน 05 สิงหาคม 2017, 11:05:27
อ้างถึงจาก: 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:


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

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

: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

อ้างถึงจาก: goragod ใน 05 สิงหาคม 2017, 19:03:52
PHPMailer ล่าสุดดาวน์โหลดได้จาก https://github.com/PHPMailer/PHPMailer ครับ

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

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

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

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

nonkungzacb





seowork

น่าสนใจดีครับ ขอนำไปลองดูหน่อย ขอบคุณครับ