Dalam pengaturcaraan PHP, operasi penghantaran e-mel adalah sangat biasa. Anda biasanya boleh menggunakan penghantaran e-mel untuk melaksanakan fungsi seperti pemberitahuan sistem, langganan e-mel, tetapan semula kata laluan dan jemputan acara. Mari kita lihat operasi penghantaran e-mel biasa dalam pengaturcaraan PHP.
1 Gunakan fungsi mail() untuk menghantar e-mel
Cara paling mudah dan langsung untuk menghantar e-mel dalam PHP ialah menggunakan fungsi mail(). Fungsi ini ialah fungsi yang disertakan dengan PHP dan tidak memerlukan pemasangan sambungan lain. Berikut ialah kod contoh mudah untuk menghantar e-mel menggunakan fungsi mail():
$to = '收件人邮箱'; $subject = '邮件主题'; $message = '邮件内容'; $headers = 'From: 发件人邮箱' . " " . 'Reply-To: 发件人邮箱' . " " . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers);
$headers di sini ialah maklumat pengepala e-mel dan anda perlu menetapkan Daripada, Balas-Kepada dan maklumat lain. Apabila menggunakan fungsi mail() untuk menghantar e-mel, anda perlu memberi perhatian kepada perkara berikut:
Menggunakan pelayan SMTP untuk menghantar e-mel boleh mengelak daripada dianggap sebagai spam daripada menggunakan fungsi mel(). Pada masa ini terdapat beberapa perpustakaan SMTP PHP yang sangat baik tersedia, seperti PHPMailer. Pustaka kelas ini mempunyai kebolehubahsuaian yang kukuh dan antara muka API yang mesra, dan menyokong kaedah penghantaran e-mel teks biasa, e-mel HTML, e-mel lampiran, dsb. pelayan SMTP. Berikut ialah contoh kod untuk menghantar e-mel teks biasa menggunakan PHPMailer:
use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'path/to/PHPMailer/src/Exception.php'; require 'path/to/PHPMailer/src/PHPMailer.php'; require 'path/to/PHPMailer/src/SMTP.php'; $mail = new PHPMailer(true); $mail->isSMTP(); try { $mail->SMTPDebug = 0; $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = '发件人邮箱'; $mail->Password = '发件人邮箱密码'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; $mail->setFrom('发件人邮箱'); $mail->addAddress('收件人邮箱'); $mail->Subject = '邮件主题'; $mail->Body = '邮件内容'; $mail->send(); echo '邮件发送成功'; } catch (Exception $e) { echo "邮件发送失败:{$mail->ErrorInfo}"; }
Kod ini berdasarkan pustaka kelas PHPMailer dan boleh dipasang terus melalui Composer dan diimport ke dalam tiga fail Exception, PHPMailer dan SMTP. Perlu diingat bahawa alamat e-mel pengirim di sini perlu konsisten dengan alamat pengirim yang diberikan oleh pembekal perkhidmatan SMTP, jika tidak, masalah "pengesahan penghantar gagal" akan berlaku.
3 Gunakan perkhidmatan e-mel pihak ketiga untuk menghantar e-mel
Dalam peringkat perusahaan atau aplikasi yang memerlukan penghantaran e-mel yang banyak, anda boleh mempertimbangkan untuk menggunakan pembekal perkhidmatan e-mel pihak ketiga. , seperti SendGrid, Mailgun, dsb. Pembekal perkhidmatan ini biasanya menyambung kepada pelanggan melalui antara muka API, yang menyelamatkan klien proses mewujudkan sambungan terus dengan pelayan SMTP dan membolehkan mereka menikmati perkhidmatan penghantaran e-mel yang lebih baik. Berikut ialah contoh kod untuk menggunakan SendGrid untuk menghantar e-mel:
$url = 'https://api.sendgrid.com/v3/mail/send'; $data = array( "personalizations" => array( array( "to" => array( array( "email" => "收件人邮箱" ) ), "subject" => "邮件主题" ) ), "from" => array( "email" => "发件人邮箱" ), "content" => array( array( "type" => "text/plain", "value" => "邮件内容" ) ) ); $options = array( 'http' => array( 'method' => 'POST', 'header' => array( 'Content-Type: application/json', 'Authorization: Bearer ' . 'SendGrid API KEY' ), 'content' => json_encode($data), ), ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); $response = json_decode($result, true); if (in_array(substr($response['status'], 0, 1), array( '2', '3' ))) { echo '邮件发送成功'; } else { echo '邮件发送失败'; }
Kod sampel ini menggunakan antara muka API yang disediakan oleh SendGrid Anda perlu mendaftar di laman web rasmi SendGrid terlebih dahulu dan mendapatkan KUNCI API. Memandangkan SendGrid ialah penyedia perkhidmatan berbayar, anda perlu memilih pakej yang sesuai dan volum penghantaran berdasarkan situasi perniagaan anda sebelum menggunakannya.
Ringkasan
Artikel ini memperkenalkan operasi penghantaran e-mel biasa dalam pengaturcaraan PHP, termasuk menggunakan fungsi mel(), menggunakan pelayan SMTP untuk menghantar e-mel dan menggunakan perkhidmatan e-mel pihak ketiga untuk menghantar e-mel . Memandangkan teknologi dan strategi yang berkaitan dengan penghantaran e-mel berubah dengan cepat, adalah disyorkan bahawa pembangun memilih kaedah penghantaran e-mel yang paling sesuai dengan mereka berdasarkan keperluan khusus dan keadaan percubaan dalam aplikasi sebenar.
Atas ialah kandungan terperinci Apakah operasi penghantaran e-mel biasa dalam pengaturcaraan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!