มีวิธีที่ฉันสามารถกำหนดค่าเซิร์ฟเวอร์ WAMPสำหรับ PHP เพื่อเปิดใช้งานmail()
ฟังก์ชันได้หรือไม่?
มีวิธีที่ฉันสามารถกำหนดค่าเซิร์ฟเวอร์ WAMPสำหรับ PHP เพื่อเปิดใช้งานmail()
ฟังก์ชันได้หรือไม่?
คำตอบ:
การกำหนดค่าไคลเอนต์อีเมลที่ใช้งานได้จาก localhost นั้นค่อนข้างน่าเบื่อฉันใช้เวลาหลายชั่วโมงในการพยายามทำมันให้ยุ่งยาก ฉันแน่ใจว่าอาจมีคนที่มีประสบการณ์มากกว่าสามารถช่วยได้หรืออาจเห็นด้วยกับฉัน
หากคุณเพียงต้องการทดสอบนี่คือเครื่องมือที่ยอดเยี่ยมสำหรับการทดสอบอีเมลในเครื่องที่แทบไม่ต้องกำหนดค่า
http://www.toolheap.com/test-mail-server-tool/
มันใช้งานได้ทันทีสำหรับฉันหวังว่านี่จะช่วยคุณได้
ติดตั้งFake Sendmail (ดาวน์โหลดsendmail.zip ) จากนั้นกำหนดค่า C: \ wamp \ sendmail \ sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
ข้างต้นจะใช้กับบัญชี Gmail จากนั้นกำหนดค่า php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
ตอนนี้รีสตาร์ท Apache และนั่นคือทั้งหมดที่คุณต้องทำ
การใช้โปรแกรมโอเพนซอร์สเรียกSend Mailคุณสามารถส่งผ่าน wamp ได้อย่างง่ายดายจริงๆ ฉันยังคงตั้งขึ้น แต่นี่คือการสอนที่ดีโดยโจจอร์แดน ใช้เวลาในการตั้งค่าน้อยกว่า 2 นาที
เพิ่งลองใช้และได้ผลอย่างมีเสน่ห์! เมื่อฉันไม่ใส่ความคิดเห็นในบันทึกข้อผิดพลาดและพบว่ามันกำลังหยุดการตรวจสอบความถูกต้องของ pop3 ฉันก็แค่ลบมันออกและส่งไปอย่างดี ขอให้โชคดี!
mail
คุณจะได้รับอีเมลจาก Google แจ้งว่ามีการบล็อกความพยายามในการลงชื่อเข้าใช้ ในอีเมลนั้นให้คลิกที่ "ตรวจสอบกิจกรรม" และในหน้าที่เปิดขึ้นให้คลิกที่ "ใช่ฉันเป็นฉัน" จากนั้นคลิก "เรียนรู้เพิ่มเติม" จากนั้นคลิกที่ "หาก 'การเข้าถึงแอปที่มีความปลอดภัยน้อยกว่า' ปิดอยู่สำหรับ บัญชีของคุณ "จากนั้นคลิก" เปิดอีกครั้ง "จากนั้นเปิดสวิตช์
from
ส่วนหัวเมื่อเรียกmail
ด้วย PHP ตัวอย่างเช่นคุณสามารถทำได้mail("to@example.com", "Subject", "Content", "From: youremailaddress@gmail.com")
(เป็นพารามิเตอร์สุดท้ายที่สำคัญ)
คุณต้องมีเซิร์ฟเวอร์ SMTP เพื่อส่งอีเมลของคุณ หากคุณมีที่พร้อมใช้งานซึ่งไม่ต้องการการรับรองความถูกต้อง SMTP (อาจเป็น ISP ของคุณ?) เพียงแค่แก้ไขการตั้งค่า 'SMTP' ([ฟังก์ชันเมล]) ในไฟล์ php.ini ของคุณ
หากไม่มีตัวเลือกนี้เนื่องจากเซิร์ฟเวอร์ SMTP ของคุณต้องการการรับรองความถูกต้องคุณจะไม่สามารถใช้ฟังก์ชัน mail () ภายในได้และต้องใช้คลาสของบุคคลที่สามซึ่งรองรับ smtp auth เช่นhttp://pear.php.net/package/Mail/
ฉันลองทดสอบเครื่องมือเซิร์ฟเวอร์เมลและแม้ว่าจะใช้งานได้ดี แต่คุณยังต้องเปิดอีเมลในไคลเอนต์บางตัว
ฉันพบPapercut : https://papercut.codeplex.com/
สำหรับการกำหนดค่านั้นทำได้ง่ายเช่น Test Mail Server Tool (pratically zero-conf) และยังทำหน้าที่เป็นไคลเอนต์อีเมลพร้อมมุมมองสำหรับข้อความ (เหมาะสำหรับอีเมล HTML), ส่วนหัว , เนื้อหา (เพื่อตรวจสอบ HTML) และRaw (เต็ม อีเมลที่ไม่แยกวิเคราะห์)
นอกจากนี้ยังมีมุมมองส่วนเพื่อแยกประเภทสื่อต่างๆที่พบในอีเมล
มี UI ที่สะอาดและเป็นมิตรโปรแกรมดูบันทึกที่ดีและให้การแจ้งเตือนเมื่อคุณได้รับอีเมล
ฉันคิดว่ามันสมบูรณ์แบบฉันแค่อยากจะให้ 2c ของฉันและอาจจะช่วยใครสักคน
Sendmail ไม่ได้ทำงานสำหรับผมดังนั้นผมจึงใช้msmtp 1.6.2 w32และส่วนใหญ่ก็ปฏิบัติตามคำแนะนำที่DeveloperSide นี่คือบทสรุปโดยย่อของการตั้งค่าสำหรับลูกหลาน:
เปิดใช้งานการเข้าถึงIMAPภายใต้บัญชี Gmail ของคุณ (หนึ่ง msmtp กำลังส่งอีเมลจาก)
เปิดใช้การเข้าถึงแอปที่ปลอดภัยน้อย ลงชื่อเข้าใช้บัญชี Google ของคุณแล้วไปที่นี่
แก้ไขphp.ini
ค้นหาและเปลี่ยนแปลงการตั้งค่าแต่ละรายการด้านล่างเพื่อแสดงสิ่งต่อไปนี้:
; These are commented out by prefixing a semicolon
;SMTP = localhost
;smtp_port = 25
; Set these paths to where you put your msmtp files.
; I used backslashes in php.ini and it works fine.
; The example in the devside guide uses forwardslashes.
sendmail_path = "C:\wamp64\msmtp\msmtp.exe -d -C C:\wamp64\msmtp\msmtprc.ini -t --read-envelope-from"
mail.log = "C:\wamp64\msmtp\maillog.txt"
สร้างและแก้ไขไฟล์msmtprc.ini
ในไดเร็กทอรีเดียวกับmsmtp.exe
ไฟล์ของคุณดังต่อไปนี้แทนที่ด้วยอีเมลและรหัสผ่านของคุณเอง:
# Default values for all accounts
defaults
tls_certcheck off
# I used forward slashes here and it works.
logfile C:/wamp64/msmtp/msmtplog.txt
account Gmail
host smtp.gmail.com
port 587
auth on
tls on
from ReplaceWithYourEmail@gmail.com
user ReplaceWithYourEmail@gmail.com
password ReplaceWithYourPassword
account default : gmail
msmtp-1.6.2-w32.zip
sourceforge.net/projects/msmtp/files/msmtp/1.6.2
ฉันใช้ Mercury / 32 และ Pegasus Mail เพื่อให้เมล () ใช้งานได้ ใช้งานได้ดีเช่นเดียวกับเซิร์ฟเวอร์อีเมลหากคุณต้องการที่อยู่อีเมลที่ลงท้ายด้วยชื่อโดเมนของคุณ