Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menghantar e-mel menggunakan PHP menggunakan protokol SMTP dan penyulitan TLS

Cara menghantar e-mel menggunakan PHP menggunakan protokol SMTP dan penyulitan TLS

王林
王林asal
2023-05-22 08:23:062088semak imbas

Dengan perkembangan Internet yang berterusan, e-mel telah menjadi salah satu alat komunikasi yang penting dalam kerja dan kehidupan harian manusia. Dalam pembangunan rangkaian, kami selalunya perlu menggunakan kod untuk menghantar e-mel kepada pengguna atau sistem lain untuk pemberitahuan, peringatan, dsb. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk menghantar e-mel melalui protokol SMTP dan penyulitan TLS.

1. Pengenalan kepada protokol SMTP

Nama penuh SMTP ialah Simple Mail Transfer Protocol Ia adalah protokol rangkaian yang digunakan untuk menghantar e-mel dan kaedah penerimaan peraturan pemindahan mel antara pelayan.

Apabila menghantar e-mel menggunakan protokol SMTP, anda perlu menggunakan alamat, port, nama pengguna, kata laluan dan maklumat lain pelayan SMTP. Alamat pelayan SMTP biasanya disediakan oleh pembekal e-mel, dan nombor port biasanya 25. Jika anda perlu menghantar e-mel yang disulitkan, anda perlu menggunakan penyulitan SSL atau kaedah penyulitan TLS pelayan SMTP.

2. Pengenalan kepada kaedah penyulitan TLS

TLS adalah singkatan kepada Transport Layer Security (Transport Layer Security) Ia adalah protokol komunikasi yang disulitkan yang biasa digunakan untuk melindungi keselamatan komunikasi rangkaian.

Apabila menghantar e-mel menggunakan penyulitan TLS, pelayan SMTP akan menghantar sijil penyulitan kepada pelanggan Selepas pelanggan melepasi pengesahan, ia akan menggunakan penyulitan kunci awam untuk menghantar maklumat e-mel ke pelayan SMTP.

3. Persediaan untuk menghantar e-mel menggunakan PHP

Apabila menggunakan PHP untuk menghantar e-mel, anda perlu menyediakan maklumat berikut:

  1. Alamat pelayan SMTP dan No port .
  2. Alamat e-mel dan kata laluan pengirim
  3. Alamat e-mel penerima, subjek dan kandungan e-mel, dsb.

4. Langkah-langkah untuk menghantar e-mel menggunakan PHP

Selepas menyediakan maklumat di atas, kami boleh melengkapkan penghantaran e-mel melalui kod PHP Berikut adalah langkah khusus untuk menggunakan PHP untuk menghantar e-mel:

  1. Tetapkan maklumat pelayan SMTP
Dalam PHP, anda boleh menggunakan kelas 'PHPMailer' untuk melaksanakan protokol SMTP dan penghantaran e-mel yang disulitkan TLS. Pertama, anda perlu menetapkan alamat pelayan SMTP, nombor port, kaedah penyulitan TLS dan maklumat lain Kod adalah seperti berikut:

$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 2;                                 
$mail->SMTPAuth = true;                              
$mail->SMTPSecure = 'tls';                           
$mail->Host = 'smtp.gmail.com';  
$mail->Port = 587;                                    

Dalam kod ini, kami menggunakan alamat pelayan SMTP sebagai 'smtp. gmail.com' dan nombor port ialah 587, dan parameter SMTPSecure ditetapkan kepada 'tls', menunjukkan bahawa penyulitan TLS digunakan untuk menghantar e-mel.

  1. Tetapkan maklumat pengirim

    Seterusnya, anda perlu menetapkan alamat e-mel dan kata laluan pengirim adalah seperti berikut:

  2. $mail->Username = 'youremail@gmail.com'; 
    $mail->Password = 'yourpassword';   
    $mail->setFrom('youremail@gmail.com', 'Your Name');
    Tetapkan maklumat penerima
Seterusnya, anda perlu menetapkan penerima, subjek, kandungan dan maklumat lain e-mel tersebut adalah seperti berikut:

$mail->addAddress('recipient1@example.com', 'Recipient Name');
$mail->addAddress('recipient2@example.com');
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->Subject = 'The Paper Airplane Contest';
$mail->Body    = 'Dear Recipient, <br><br> Are you ready for the upcoming paper airplane contest?';
$mail->AltBody = 'Dear Recipient, Are you ready for the upcoming paper airplane contest?';

Dalam kod ini, kami menggunakan fungsi addAddress() untuk menambah alamat penerima, fungsi setFrom() untuk menetapkan alamat pengirim, dan fungsi addCC() dan addBCC() untuk menetapkan alamat CC dan BCC.

    Hantar e-mel
Akhir sekali, anda perlu menggunakan fungsi hantar() untuk menghantar e-mel Kod lengkap adalah seperti berikut:

$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 2;                                 
$mail->SMTPAuth = true;                              
$mail->SMTPSecure = 'tls';                           
$mail->Host = 'smtp.gmail.com';  
$mail->Port = 587;                                    
$mail->Username = 'youremail@gmail.com'; 
$mail->Password = 'yourpassword';   
$mail->setFrom('youremail@gmail.com', 'Your Name');
$mail->addAddress('recipient1@example.com', 'Recipient Name');
$mail->addAddress('recipient2@example.com');
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->Subject = 'The Paper Airplane Contest';
$mail->Body    = 'Dear Recipient, <br><br> Are you ready for the upcoming paper airplane contest?';
$mail->AltBody = 'Dear Recipient, Are you ready for the upcoming paper airplane contest?';
if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

5. Ringkasan

Artikel ini memperkenalkan cara menggunakan bahasa PHP untuk menghantar e-mel melalui protokol SMTP dan penyulitan TLS. Apabila menghantar e-mel dengan cara ini, anda perlu menyediakan alamat dan nombor port pelayan SMTP, alamat e-mel dan kata laluan pengirim, alamat e-mel penerima, subjek dan kandungan e-mel, dsb., dan tetapkan maklumat ini melalui PHP kod Akhir sekali, gunakan fungsi send() untuk menghantar e-mel.

Atas ialah kandungan terperinci Cara menghantar e-mel menggunakan PHP menggunakan protokol SMTP dan penyulitan TLS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn