Skip to main content

ส่งอีเมลจากสคริปต์ PHP โดยใช้ SMTP Authentication

Anonim

การส่งอีเมลจากสคริปต์ PHP เป็นเรื่องง่ายรวดเร็วและใช้งานง่าย … ถ้าใช้งานได้!

ส่วนหนึ่งของสิ่งที่ทำให้ PHP mail () ฟังก์ชั่นเพื่อให้ง่ายก็คือการขาดความยืดหยุ่น แต่ปัญหาหนึ่งที่เป็นที่หุ้น PHP mail () โดยปกติจะไม่อนุญาตให้คุณใช้เซิร์ฟเวอร์ SMTP ตามที่คุณเลือกและไม่สนับสนุนการรับรองความถูกต้องของ SMTP

โชคดีที่การเอาชนะข้อบกพร่องในตัวของ PHP ไม่ใช่เรื่องยาก สำหรับผู้ใช้อีเมลส่วนใหญ่แพ็คเกจ PEAR Mail ฟรีจะมอบพลังและความยืดหยุ่นทั้งหมดที่จำเป็นและรับรองความถูกต้องกับเซิร์ฟเวอร์จดหมายขาออกที่คุณต้องการ สำหรับการรักษาความปลอดภัยขั้นสูงการเชื่อมต่อ SSL แบบเข้ารหัสจะได้รับการสนับสนุนสำหรับการส่งอีเมลโดยใช้ PEAR Mail เช่นกัน

วิธีการส่งอีเมลจากสคริปต์ PHP ด้วยการตรวจสอบสิทธิ์ SMTP

เมื่อต้องการเริ่มต้นติดตั้งแพคเกจอีเมล PEAR โดยปกติแล้วนี้จะได้รับการทำสำหรับคุณด้วย PHP 4 ขึ้นไป แต่ถ้าคุณไม่แน่ใจว่าคุณมีอยู่แล้วหรือไม่ให้ดำเนินการต่อและติดตั้ง

คัดลอกรหัสนี้:

require_once 'Mail.php'; $from = 'Sandra Sender >'; $to = 'Ramona Recipient '; $subject = 'Hi!'; $body = 'Hi, How are you?'; $host = 'mail.example.com'; $username = 'smtp_username'; $password = 'smtp_password'; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('

' . $mail->getMessage() . '

'); } else { echo('

Message successfully sent!

'); }

ค้นหาข้อความที่เป็นตัวหนาทั้งหมดในตัวอย่างของเราและเปลี่ยนพื้นที่เหล่านั้นในสคริปต์เป็นสิ่งที่เกี่ยวข้องกับคุณ นี่คือพื้นที่เฉพาะที่คุณ ต้อง เปลี่ยนลำดับสคริปต์ PHP ให้ทำงานได้ แต่ต้องแน่ใจว่าได้ปรับเปลี่ยนเรื่องและเนื้อหาด้วยเช่นกัน

  • จาก: ที่อยู่อีเมลที่คุณต้องการให้ส่งข้อความ
  • ไปยัง: ที่อยู่อีเมลของผู้รับและชื่อ
  • เจ้าภาพ: ชื่อเซิร์ฟเวอร์ SMTP ขาออกของคุณ
  • ชื่อผู้ใช้: ชื่อผู้ใช้ SMTP (โดยปกติจะเหมือนกับชื่อผู้ใช้ที่ใช้เรียกจดหมาย)
  • รหัสผ่าน: รหัสผ่านสำหรับการตรวจสอบความถูกต้องของ SMTP

บันทึก: ตัวอย่างข้างต้นเป็นสคริปต์ PHP ที่ส่งอีเมลที่มีการตรวจสอบสิทธิ์ SMTP แต่ ไม่มี การเข้ารหัส SSL หากต้องการเข้ารหัสด้วยให้ใช้สคริปต์นี้แทนการแลกเปลี่ยนข้อความตัวหนากับข้อมูลของคุณอีกครั้ง

require_once 'Mail.php'; $from = 'Sandra Sender >'; $to = 'Ramona Recipient >'; $subject = 'Hi!'; $body = 'Hi, How are you?'; $host = 'ssl://mail.example.com'; $port = '465'; $username = 'smtp_username'; $password = 'smtp_password'; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('

' . $mail->getMessage() . '

'); } else { echo('

Message successfully sent!

'); }