Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > สอบถามการส่ง เมล์ด้วย SMTP มี 2 ตัวอย่าง แต่เลือกตัวอย่างที่ 2 แนะนำด้วยครับ ยังไม่เข้าใจ



 

สอบถามการส่ง เมล์ด้วย SMTP มี 2 ตัวอย่าง แต่เลือกตัวอย่างที่ 2 แนะนำด้วยครับ ยังไม่เข้าใจ

 



Topic : 127698



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์




สอบถามครับ เราไม่ต้องโหลด downloadphpmailer มาใช่ไหม
เราแค่ สร้าง Email Account บน Cpanel แล้วก็ได้ user กับ password มาใส่ในโค๊ดข้างล่างนี้ใช่ไหมครับ เมล์ก็ส่งได้ปกติ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com</title>
</head>
<body>
<?php
		require_once('class.phpmailer.php');
		$mail = new PHPMailer();
		$mail->IsHTML(true);
		$mail->IsSMTP();
		$mail->SMTPAuth = true; // enable SMTP authentication
		$mail->SMTPSecure = ""; // sets the prefix to the servier
		$mail->Host = "mail.thaicreate.com"; // sets as the SMTP server
		$mail->Port = 25; // set the SMTP port for the server
		$mail->Username = "[email protected]"; // username
		$mail->Password = "password"; // password
		$mail->From = "[email protected]"; // "[email protected]";
		$mail->FromName = "www.ThaiCreate.Com";  // set from Name
		$mail->Subject = "Test sending mail.";
		$mail->Body = "Test Mail Description";
		$mail->AddAddress("[email protected]", "Weerachai Nukitram"); // to Address
		$mail->Send(); 
?>
</body>
</html>


ถามครับ 2 บรรทัดข้างนี้เข้าใจถูกไหม
Code (PHP)
		$mail->From = "[email protected]"; // "[email protected]" //  ให้ใส่เมล์ผู้ส่งใช่ไหม

		$mail->AddAddress("[email protected]", "Weerachai Nukitram"); // ใส่เมล์ผู้รับปลายทางใช่ไหม





Tag : PHP, JavaScript, Ajax, jQuery









ประวัติการแก้ไข
2017-05-22 15:02:45
2017-05-22 15:03:54
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-05-22 14:59:42 By : sawmon View : 1722 Reply : 9
 

 

No. 1



โพสกระทู้ ( 14 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอตอบนะครับ..

ต้องมีไฟล์ phpmailer ด้วยครับ เพราะในโค้ดมีการเรียกใช้ไฟล์ class.phpmailer.php

โหลดจากลิงค์นี้ก็ได้ครับ https://www.thaicreate.com/community/php-send-mail-smtp.html

คำถามที่ 2 ถูกต้องแล้วครับ ต้องเซ็ตข้อมูลให้เป็นของเราก่อน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-22 15:41:31 By : sinomoney
 


 

No. 2



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์


ส่งได้แล้ว ครับ ตามบทความนี้ http://www.picohosting.com/howto/phpmailer
ถ้าจะส่งจาก from จะส่งแบบไหนครับ ส่งจากอีกหน้าหนึ่ง มาหน้าหนึ่ง
test1.php
Code (PHP)
 <form action="test2.php" method="post" enctype="multipart/form-data" name="frmMain">
  <p>
    เมล์ผู้ส่ง : <input name="txtEmail_from" type="text" id="txtEmail_from" class="txtbox">
    <BR />
    เมล์ผู้รับ : <input name="txtEmail_to" type="text" id="txtEmail_to" class="txtbox"><BR>
    รายละเอียดข้อความที่ส่ง : <textarea name="txtDesc" cols="40" rows="8" class="txtbox" id="txtDesc"></textarea><BR>
    <label for="fileField"></label>
    ไฟล์ภาพที่ต้องการส่ง : <input type="file" name="fileField" id="fileField">
    <BR>

    <input type="submit" name="button" id="button" value="Submit">
    <BR>

</form>




test2.php
Code (PHP)
<?PHP
require("PHPMailer_v5.0.2/class.phpmailer.php");
$mail = new PHPMailer();

$body = "ทดสอบการส่งอีเมล์ภาษาไทย UTF-8 ผ่าน SMTP Server ด้วย PHPMailer.";//ตรงนี้อยากใส่ตัวแปร txtDesc และ fileField ต้องทำอย่างไรครับ 

$mail->CharSet = "utf-8";
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Host = "smtp.yourdomain.com"; // SMTP server
$mail->Port = 25; // พอร์ท
$mail->Username = "[email protected]"; // account SMTP
$mail->Password = "******"; // รหัสผ่าน SMTP

$mail->SetFrom("[email protected]", "yourname");
$mail->AddReplyTo("[email protected]", "yourname");
$mail->Subject = "ทดสอบ PHPMailer.";

$mail->MsgHTML($body);

$mail->AddAddress("[email protected]", "recipient1"); // ผู้รับคนที่หนึ่ง
$mail->AddAddress("[email protected]", "recipient2"); // ผู้รับคนที่สอง

if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-22 16:59:27 By : sawmon
 

 

No. 3



โพสกระทู้ ( 219 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


Code (PHP)
<?php
$email_to = $_REQUEST['txtEmail_to'] ;
$message = $_REQUEST['txtDesc'] ;

require("PHPMailer_v5.0.2/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();

$mail->Host = "mail.example.com";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "[email protected]";  // SMTP username
$mail->Password = "password"; // SMTP password

$mail->From = "[email protected]"; // "[email protected]";

// below we want to set the email address we will be sending our email to.
$mail->AddAddress($email_to, "Mr.XYZ");

// set word wrap to 50 characters
$mail->WordWrap = 50;
// set email format to HTML
$mail->IsHTML(true);

$mail->Subject = "You have received feedback from your website!";

// $message = $_REQUEST['message'] ;
$mail->Body    = $message;
$mail->AltBody = $message;

//AddAttachment File : upload local file to server and attatch from server path
if (isset($_FILES['fileField']) &&
  $_FILES['fileField']['error'] == UPLOAD_ERR_OK) {

  //check MIME TYPE อนุญาติเฉพาะนามสกุลที่กำหนด
  $finfo = new finfo(FILEINFO_MIME_TYPE);
  if (false === $ext = array_search(
    $finfo->file($_FILES['fileField']['tmp_name']),
    array(
        'jpg' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
    ),
    true
  )) {
      throw new RuntimeException('Invalid file format.');
  }
  $destination = sprintf('./uploads/%s.%s', sha1_file($_FILES['fileField']['tmp_name']), $ext);

  //move the file to a temp folder
  if (!move_uploaded_file($_FILES['fileField']['tmp_name'], $destination)) {
    throw new RuntimeException('Failed to move uploaded file.');
  }

  //Attach file
  $mail->AddAttachment($_FILES['fileField']['tmp_name'], basename($destination));
  //delete the file (ถ้าไม่ลบจะมีไฟล์อยู่ที่ server เพิ่มขึ้นเรื่อย)
  unlink($destination);
}

if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-22 23:20:42 By : ccjpn
 


 

No. 4



โพสกระทู้ ( 219 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


หากต้องการเลือกมากกว่า 1 ไฟล์ อัพโหลด
<input type="file" name="fileField" multiple> //select multiple file

Code
<?php ......... ..... $target_dir = "upload/"; //first upload your directory path $names = $_FILES['fileField']['name']; //file Name $i =0; // วนลูป addAttachment หลายๆไฟล์ foreach($names as $name){ $target_file = $target_dir . basename($name); //first upload your directory path move_uploaded_file($_FILES["fileField"]["tmp_name"][$i], $target_file); //upload your directory $mail->addAttachment($target_file); //after upload file path fetch and atachment $i++; }

//ในโฟลดเดอร์ /upload จะมีไฟล์เพิ่มมาเรื่อยๆ ต้องเขียน script ลบไฟล์ทิ้งด้วยหลังส่งเมล์สำเร็จ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-22 23:35:58 By : ccjpn
 


 

No. 5



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : ccjpn เมื่อวันที่ 2017-05-22 23:35:58
รายละเอียดของการตอบ ::
Code (PHP)
ขอบคุณครับสำหรับคำแนะนำ ขอถามอีกนิดครับ
<?PHP
$t_Email=$_REQUEST['txtEmail'];//เมล์ผู้ส่ง
$t_OrderNo=$_REQUEST['txtOrderNo'];//เรื่องที่ส่ง
$t_Desc=$_REQUEST['txtDesc'];//รายละเอียด


require("PHPMailer_v5/class.phpmailer.php");
$mail = new PHPMailer();

$body = $t_Desc;

$mail->CharSet = "utf-8";
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Host = "**********"; // SMTP server
$mail->Port = 25; // พอร์ท
$mail->Username = "*********"; // account SMTP
$mail->Password = "*******"; // รหัสผ่าน SMTP
$mail->SetFrom($t_Email, $t_Email);
$mail->AddReplyTo($t_Email, $t_Email);
//เรื่องที่ส่ง
$mail->Subject = $t_OrderNo;

$mail->MsgHTML($body);

$mail->AddAddress("[email protected]", "recipient"); // ผู้รับคนที่หนึ่ง



//******AddAttachment File : upload local file to server and attatch from server path-----------------------------------------------------------
if (isset($_FILES['fileField']) &&
  $_FILES['fileField']['error'] == UPLOAD_ERR_OK) {

  //check MIME TYPE อนุญาติเฉพาะนามสกุลที่กำหนด
  $finfo = new finfo(FILEINFO_MIME_TYPE);
  if (false === $ext = array_search(
    $finfo->file($_FILES['fileField']['tmp_name']),
    array(
        'jpg' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
    ),
    true
  )) {
      throw new RuntimeException('Invalid file format.');
  }
  $destination = sprintf('uploads/%s.%s', sha1_file($_FILES['fileField']['tmp_name']), $ext);
  //move the file to a temp folder
  if (!move_uploaded_file($_FILES['fileField']['tmp_name'], $destination)) {
    throw new RuntimeException('Failed to move uploaded file.');
  }
  //Attach file
  $mail->AddAttachment($_FILES['fileField']['tmp_name'], basename($destination));
  //delete the file (ถ้าไม่ลบจะมีไฟล์อยู่ที่ server เพิ่มขึ้นเรื่อย)
 unlink($destination);
}

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";

?>



Code (PHP)
//Attach file
$mail->AddAttachment($_FILES['fileField']['tmp_name'], basename($destination));
unlink($destination);
}

ถ้าเอา 2 บรรทัดนี้ออกส่งเมล์ได้ ไม่เกิด error แต่ไฟล์แนบส่งไม่ได้ เพราะอะไรครับ **ไฟล์ ที่แนบก็อยู่ใน foder uploads ครับ
ถ้าไม่เอาออก เกิด error Could not access file: /tmp/phpUXg9CB Message has been sent





ประวัติการแก้ไข
2017-05-23 14:22:42
2017-05-23 14:25:01
2017-05-23 14:26:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-23 14:21:12 By : sawmon
 


 

No. 6



โพสกระทู้ ( 219 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


php script ไปหาหาไฟล์ที่ upload ผิดที่น่าจะเกิดจาก php.ini: ตั้งค่า default ไปที่ upload_tmp_dir =/tmp
ลองเปลี่ยนค่าเป็น upload_tmp_dir =/uploads

comment 2 บรรทัดนี้ไว้ก่อนก็ได้
//Attach file
//$mail->AddAttachment($_FILES['fileField']['tmp_name'], basename($destination));
//unlink($destination);
}

แล้วลองดูใน โฟลดเดอร์ /uploads มีไฟล์ upload เข้ามาในโฟลดเดอร์นั้นมั๊ยครับ ถ้ามีไฟล์เข้ามาแล้วค่อยเอา comment ออกลองดูครับ


ประวัติการแก้ไข
2017-05-23 19:37:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-23 19:33:34 By : ccjpn
 


 

No. 7



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่สามารถเข้าแก้ไขไฟล์ php.ini เพราะเป็น host เช่าครับ
สามารถสร้างเป็น ไฟล์ .htaccess แล้ว อัปขึ้น ไว้ใน public_html/{ไฟล์ .htaccess ที่สร้างขึ้น}
แล้วในไฟล์ .htaccess ให้ใส่แค่ upload_tmp_dir =/uploads ใช่ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-24 11:23:05 By : sawmon
 


 

No. 8



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : ccjpn เมื่อวันที่ 2017-05-23 19:33:34
รายละเอียดของการตอบ ::
ลองแล้วครับ ไม่ได้ครับ

แล้วในไฟล์ .htaccess ให้ใส่แค่ #upload_tmp_dir =/uploads ใช่ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-24 11:32:46 By : sawmon
 


 

No. 9



โพสกระทู้ ( 121 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : ccjpn เมื่อวันที่ 2017-05-23 19:33:34
รายละเอียดของการตอบ ::
ตอนนี้ ส่งแบบแนบไฟล์ได้แล้ว ครับ ตามตัวอย่างนี้ ให้เครดิตพี่เขา hobbits จากลิงค์นี้ https://www.thaicreate.com/php/forum/016850.html Code (PHP)

ไม่ทราบว่า อนาคต จะเกิดปัญหาส่งแล้วมีโอกาสไม่ถึงบ้างไหมครับ ขอนความรู้หน่อยครับ
ส่วนตรงนี้ผมแทรกเอง require("PHPMailer_v5/class.phpmailer.php"); ไม่รู้จะเป็นรัยไหม


<?php
require("PHPMailer_v5/class.phpmailer.php");
//get data nedeed !
$from = $_POST[from];
$to = $_POST[to];
$subject = $_POST[subject];
$message = $_POST[message];
//replace \n with <br>
$message = str_replace("\n", "<br>",$message);
//report
echo "<b><font color=#8080FF> From: $from </b><br>";
echo "<b>To: $to </b><br>";
echo "<b>Subject: $subject</b><br><br></font>";
// Obtain file upload variables
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];

$headers = "From: $from \n";


// if($_FILES['fileatt']['size'] > 0)
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "MIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";

// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
}else echo "File error! ";


$charset='UTF-8';
$encoded_subject="=?$charset?B?".base64_encode($subject)."?=\n";

//send the mail
if(mail($to, $encoded_subject, $message,$headers))echo "<b><font color=#FF0000>Message was send!<b></font>";
else echo "<b><font color=#FF0000>Message error!<b></font>";

?>



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-05-24 12:07:23 By : sawmon
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการส่ง เมล์ด้วย SMTP มี 2 ตัวอย่าง แต่เลือกตัวอย่างที่ 2 แนะนำด้วยครับ ยังไม่เข้าใจ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่