Cara Menghantar E-mel Dari Skrip PHP Menggunakan Pengesahan SMTP

Isi kandungan:

Cara Menghantar E-mel Dari Skrip PHP Menggunakan Pengesahan SMTP
Cara Menghantar E-mel Dari Skrip PHP Menggunakan Pengesahan SMTP
Anonim

Apa yang Perlu Diketahui

  • Pilihan kelas PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Perhatikan nama pelayan mel > semak bahawa PEAR Mail dipasang > ubah suai fail PHP menggunakan contoh yang diberikan.

Artikel ini menerangkan cara menggunakan pengesahan SMTP untuk menghantar e-mel dengan fungsi PHP mail() dalam PEAR Mail.

Menghantar E-mel Dengan Fungsi Mel PHP

Apabila anda menggunakan fungsi mel() PHP, anda akhirnya menghantar e-mel terus daripada pelayan web anda dan bukannya pelayan mel anda. Jika anda mempunyai pelayan mel melalui hos web anda, atau malah pelayan mel dengan hos yang berbeza, biasanya lebih baik untuk menghantar mel melaluinya.

Masalahnya ialah fungsi PHP mail() tidak menyediakan sebarang cara terbina dalam untuk menghantar mel melalui SMTP. Jika anda ingin membuka fungsi itu, anda perlu memasang kelas PHP tambahan.

Berikut ialah beberapa pilihan yang berkesan:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • Mel PEAR

Kami akan menunjukkan kepada anda cara menggunakan PEAR Mail, tetapi anda boleh menggunakan mana-mana kelas yang menyokong SMTP.

Image
Image

Jika hos web anda sudah memasang satu atau lebih daripada kelas ini, ia mungkin mempunyai tutorial yang berkaitan dengan situasi anda. Jika ya, teruskan dan gunakan kelas yang anda ada akses.

Hanya gunakan kaedah ini jika anda menggunakan PHP untuk membuat borang mel tersuai anda sendiri. Jika anda menggunakan sistem pengurusan kandungan (CMS) seperti WordPress, cari pemalam atau fungsi terbina dalam untuk menghantar mel melalui SMTP, dan bukannya cuba mencipta sendiri.

Cara Menggunakan PEAR untuk Menghantar Mel Melalui SMTP

  1. Pastikan domain anda dihalakan pada rekod Mail Exchange (MX) bagi hos pelayan mel anda dan catatkan nama pelayan mel anda. Contohnya, ia mungkin mail.yourdomain.net atau smtp.yourdomain.net.
  2. Semak untuk melihat sama ada Mel PEAR telah dipasang pada pelayan mel anda.
  3. Jika PEAR Mail tidak dipasang, rujuk dengan hos mel web anda untuk mendapatkan arahan khusus untuk memasangnya.
  4. Setelah PEAR Mail dipasang, ubah suai salah satu contoh fail PHP dalam bahagian berikut agar sesuai dengan keperluan anda.

Contoh Skrip PHP Mel PEAR Untuk Mel SMTP

Anda boleh membuat skrip anda sendiri dari awal jika anda suka, atau ubah suai contoh berikut mengikut keinginan anda. Pastikan anda memasukkan nama pelayan mel web anda dalam pembolehubah hos dan gunakan maklumat log masuk anda untuk hos mel web anda dalam medan nama pengguna dan kata laluan.

memerlukan_sekali "Mail.php";

$from="Nama Pengirim ";

$to="Nama Penerima ";

$subject=" Baris Subjek Di Sini: ";

$body=" sebarang mesej yang anda mahukan ";

$host="yourmailhost.com";

$username="nama pengguna atau e-mel anda"; $kata laluan="kata laluan anda";

$headers=tatasusunan ('Daripada'=> $daripada, 'Kepada'=> $kepada, 'Subjek'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'nama pengguna'=> $nama pengguna, 'kata laluan'=> $kata laluan));

$mel=$smtp->hantar($kepada, $headers, $body);

jika (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} lain {echo("

Mesej berjaya dihantar!

);}

Contoh Skrip PHP Mel PEAR Untuk Pengesahan SMTP dan Penyulitan SSL

Jika anda ingin menggunakan pengesahan SMTP dan penyulitan SSL, anda perlu membuat beberapa pengubahsuaian pada contoh sebelumnya. Anda perlu menghalakan pembolehubah hos ke pelayan mel SSL anda, dan juga menentukan nombor port seperti 25, 465, 587, 2525 atau 8025. Hubungi hos mel web anda untuk mendapatkan maklumat lanjut jika anda tidak dapat mengetahui port yang hendak dituju gunakan.

memerlukan_sekali "Mail.php";

$from="Nama Pengirim ";

$to="Nama Penerima ";

$subject=" Baris Subjek Di Sini: ";

$body=" sebarang mesej yang anda mahukan ";

$host="ssl://yourmailhost.com";

$port="587"; $nama pengguna="nama pengguna atau e-mel anda";

$kata laluan="kata laluan anda";

$headers=tatasusunan ('Daripada'=> $daripada, ' Kepada'=> $kepada, 'Subjek'=> $subjek);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->hantar($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} lain {echo("

Mesej berjaya dihantar!

);}

Disyorkan: