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 > บทความจากสมาชิก > ติดตั้ง SMTP Service สำหรับส่งอีเมล์บน Windows 7 (PHP,ASP.Net,IIS,Apache)



 
Clound SSD Virtual Server

ติดตั้ง SMTP Service สำหรับส่งอีเมล์บน Windows 7 (PHP,ASP.Net,IIS,Apache)

ติดตั้ง SMTP Service สำหรับส่งอีเมล์บน Windows 7 (PHP,ASP.Net,IIS,Apache) ในการเขียนโปรแกรมไม่ว่าจะรันด้วย Apache หรือ IIS ทั้งประเภทเว็บที่เขียนด้วย PHP , ASP หรือ ASP.net บน Windows 7 เราจะพบว่าไม่สามารถที่จะทดสอบการส่งอีเมล์ออกได้ อันเนื่องจาก ใน Windows7 Version ใหม่ จะมีการตัด Feature ตัว SMTP Service ออก จะไม่มีเหมือน Windows Server 2008 หรือ 2012 (ไม่รู้จะเอาออกไปทำไม เข้าใจว่าน่าจะลดปัญหา Spam อีเมล์ออกจากเครื่อง) ซึ่งบน IIS (Internet Information Services) จะมีแแค่เพียง SMTP E-Mail เป็นตัวระบุและชี้ Path IP ไปยัง SMTP Server ที่จะใช้เท่านั้น ฉะนั้นการที่จะส่งอีเมล์ออกจาก Windows 7 จะต้องหาดาวน์โหลดตัว SMTP Server มาติดตั้งบน Windows 7 ซะก่อน ซึ่งสาารถใช้ได้อยู่หลายตัว แต่ที่จะแนะนำให้ใช้คือ hMailServer เป็น Free SMTP Server และสามารถนำมาใช้กับ Windows 7 ได้ทั้งเว็บที่รันด้วย IIS และ Apache Web Server

SMTP E-Mail Windows 7

SMTP E-Mail Windows 7


บทความนี้อันเนื่องจากเห็นสมาชิกโพสในกระทู้บ่อย ๆ และก็ว่างพอดี เลยจัดให้ซะหน่อย มาลองดู Code ของ PHP ที่ใช้ส่งอีเมล์แบบง่าย ๆ

sendmail.php
<html>
<head>
<title>ThaiCreate.Com PHP Sending Email</title>
</head>
<body>
<?php
	$strTo = "[email protected]";
	$strSubject = "Test Send Email";
	$strHeader = "From: [email protected]";
	$strMessage = "My Body & My Description";
	$flgSend = mail($strTo,$strSubject,$strMessage,$strHeader); 
	if($flgSend)
	{
		echo "Email sending.";
	}
	else
	{
		echo "Cannot send Mail!";
	}
?>
</body>
</html>

หลังจากที่ทดสอบรันดูด้วย Apache หรือ IIS จะมี Error ว่า

Error
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\Appserv\www\sendmail.php on line 11
Cannot send Mail!

จาก Error นี้เข้าใจความหมายง่าย ๆ ว่า หาตัว SMTP ที่อยู่บน localhost ไม่เจอ ซึ่งปกติแล้วบน php.ini เราไม่จำเป็นจะต้องทำการ Config อะไรเพิ่มเติม เพราะค่า Default ของมันจะชี้ไปที่ localhost และ Port 25 อยู่แล้ว








กรณีที่รันด้วย IIS (ถ้ารันด้วย Apache เช่นพวก Appserv หรือ XAMPP ก็ข้ามขั้นตอนนี้ไปได้เลย)

ในกรณีที่รันด้วย IIS เราสามารถเปิด SMTP E-mail ที่อยู่บน IIS

SMTP E-Mail Windows 7

ซึ่งตัวนี้ไม่ใช่ SMTP Server แต่เป็นเพียงตัวชี้ไปยัง SMTP Server เท่านั้น

SMTP E-Mail Windows 7

ในกรณีที่มี SMTP Server อยู่แล้ว เราก็สามารถที่จะชี้ไปยัง IP ของ SMTP นั้น ๆ และเรียกใช้งานได้เลย

SMTP E-Mail Windows 7

หรือในกรณีที่ต้องการติดตั้ง SMTP บน local ก็จะต้องเลือกเป็นแบบ localhost และดาวน์โหลดตัว SMTP Server มาติดตั้งซะก่อน (อย่าลืมวิธีนี้กรณีรัน PHP บน IIS เท่านั้น ถ้ารันด้วย Apache เช่นพวก Appserv หรือ XAMPP ก็ข้ามขั้นตอนนี้ไปได้เลย)


การติดตั้ง SMTP Server บน Windows 7 ใช้ส่งอีเมล์ทั้งบน IIS และ Apache (Appserv,XAMPP)

Download โปรแกรม hmailserver ซึ่งเป็น Freeware สามารถใช้งานได้ฟรี
https://www.hmailserver.com

วิธีติดตั้ง hMailServer 5.3.3 installation step by step by PlaKriM


SMTP E-Mail Windows 7

ติดตั้ง hMailServer

SMTP E-Mail Windows 7

เลือก Path ที่จัดเก็บไฟล์ ซึ่ง Path นี้จะไว้ดูพวก Queue หรืออีเมล์ที่ถูกส่งออกด้วย

SMTP E-Mail Windows 7

เลือกตั้ง 2 ตัว โดยในขั้นตอนการติดตั้ง อาจจะมีให้กำหนด Password ในการ Access เข้าจัดการกับ hMailServer

SMTP E-Mail Windows 7

เลือก Run hMailServer Administator

SMTP E-Mail Windows 7

เลือก Connect

SMTP E-Mail Windows 7

ขั้นตอนนี้ให้ใส่ Password ที่ได้จากขั้นตอนการติดตั้ง

SMTP E-Mail Windows 7

เลือก Add Domain

SMTP E-Mail Windows 7

ในนี้จะใส่เป็น thaicreate.com

SMTP E-Mail Windows 7

ได้โดเมนเรียบเร้อย จากนั้นให้คลิกที่ Accounts

SMTP E-Mail Windows 7

ทดสอบสร้าง Account ชื่อว่า [email protected] พร้อมกับ Password (ซึ่ง Password เราจะใช้ในกรณีที่ Authen ผ่าน SMTP)

SMTP E-Mail Windows 7

ได้ Account ของ [email protected] เรียบร้อยแล้ว จากนั้นใน Code ของ PHP เพิ่มคำสั่ง

	ini_set("SMTP","localhost");
	ini_set("sendmail_from","[email protected]");

ไม่จำเป็นจะต้องใส่ Password เพราะเราไม่ได้ส่งผ่านการ Authen แบบ SMTP








Code ทั้งหมด
<html>
<head>
<title>ThaiCreate.Com PHP Sending Email</title>
</head>
<body>
<?php
	ini_set("SMTP","localhost");
	ini_set("sendmail_from","[email protected]");

	$strTo = "[email protected]";
	$strSubject = "Test Send Email";
	$strHeader = "From: [email protected]";
	$strMessage = "My Body & My Description";
	$flgSend = mail($strTo,$strSubject,$strMessage,$strHeader); 
	if($flgSend)
	{
		echo "Email Sending.";
	}
	else
	{
		echo "Cannot send Mail!";
	}
?>
</body>
</html>

SMTP E-Mail Windows 7

ทดสอบรันใหม่ เราจะได้ผลลัพธ์ดังรูป

SMTP E-Mail Windows 7

การทดสอบว่าอีเเมล์ได้ถูกส่งออกไปหรือไม่ให้คลิกที่ Status -> Delivery queue -> Refresh ซึ่งเราจะพบกับอีเมล์ที่เตรียมถูกส่งออกไป

SMTP E-Mail Windows 7

รายละเอียดของอีเมล์

เพิ่มเติม
ในการส่งอีเมล์ด้วย PHP บน Windows 7 นั้น ถ้าอีเมล์ถูกส่งออกไปยัง Queue นั่นก็หมายความว่า PHP สามารถส่งอีเมล์ออกไปได้แล้ว แต่อีเมล์จะไปถึงปลายทางหรือไม่นั้น อันนี้อยู่ที่ระบบ Network ล้วน ๆ เช่นถ้าคุณต่ออินเตอร์เน็ตผ่านพวก ADSL ของ ISP หรืออินเตอร์เน็ต ทั่ว ๆ ไป หรือแม้กระทั่ง Network ในบริษัท หน่วยงานต่าง ๆ เข้าใจว่าผู้ให้บริการเหล่านี้จะ Block อีเมล์ที่ส่งมาจากเครื่องของคุณอย่างแน่นอน เพื่อเป็นการป้องกัน Spam ออกจากเครื่อง ฉะนั้นจะเห็นว่าอีเมล์จะไม่ถูกส่งออกไปจาก Queue แต่ถ้า IP อยู่ในระบบ Network อย่างเช่น IP ที่เช่าจาก Data Center โดยตรง อันนี้อีเมล์จะถูกส่งออกไปยังแน่นอน ส่วนจะถึงปลายทางหรือโดนตีกลับหรือไม่ ขึ้ออยู่กับปัจจัยอีกหลายตัว เช่น IP นี้มีความน่าเชื่อถือ หรือ ติด Black List หรือไม่

เพิ่มเติมสำหรับการ Config บน IIS

SMTP E-Mail Windows 7

ในส่วนของ SMTP E-Mail บน IIS ให้ Config ดังรูป โดยในส่วนของ Host ใส่เป็น 127.0.0.1 หรือ localhost (ถ้าไม่ได้ให้สลับกัน)

เพิ่มเติมหรับการ Authen แบบ SMTP
Go to : แจกฟรี Script ส่งอีเมล์แบบ SMTP / POP ของ PHP ที่สามารถใช้งานได้จริง ๆ

<?php require_once('class.phpmailer.php'); $mail = new PHPMailer(); $mail->IsHTML(true); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = ""; $mail->Host = "127.0.0.1"; $mail->Port = 25; $mail->Username = "[email protected]"; $mail->Password = "password"; $mail->From = "[email protected]"; // "[email protected]"; //$mail->AddReplyTo = "[email protected]"; // Reply $mail->FromName = "Mr.Weerachai Nukitram"; // set from Name $mail->Subject = "Test sending mail."; $mail->Body = "My Body & <b>My Description</b>"; $mail->AddAddress("[email protected]", "Mr.Adisorn Boonsong"); // to Address $mail->Send(); ?>




เพิ่มเติมอีกนิด

SMTP E-Mail Windows 7

ในกรณีที่ Authen ด้วย SMTP ผ่าน User/Password ในกรณีที่ Login ผิดเกิน 3 ครั้ง Account นั้น ๆ อาจจะถูก Auto Ban ได้

SMTP E-Mail Windows 7

ไปที่ Advanced -> IP Ranges จะพบกับรายการที่ถูก Ban เราสามารถยกเลิกด้วยการ Remove

SMTP E-Mail Windows 7

ในส่วน Auto-ban จะเป็นการกำหนดเงื่อนไข

อ่านเพิ่มเติม
Go to : PHP Sending Email / Send Mail
Go to : hMailServer 5.3.3 installation step by step by PlaKriM
Go to : แจกฟรี Script ส่งอีเมล์แบบ SMTP / POP ของ PHP ที่สามารถใช้งานได้จริง ๆ


   
Share
Bookmark.   

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2015-02-10
  Download : No files
Sponsored Links
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 05
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 อัตราราคา คลิกที่นี่