Rumah pembangunan bahagian belakang tutorial php Proses lengkap menghantar e-mel menggunakan PHP menggunakan protokol SMTP

Proses lengkap menghantar e-mel menggunakan PHP menggunakan protokol SMTP

May 23, 2023 am 09:21 AM
php smtp Menghantar e-mel

Dengan perkembangan Internet, e-mel telah menjadi salah satu cara komunikasi harian yang penting untuk orang ramai. Dalam aplikasi Web, menghantar e-mel telah menjadi salah satu fungsi yang diperlukan, dan dengan pembangunan aplikasi Web, cara menghantar e-mel juga telah bertambah baik. Antaranya, kaedah penghantaran e-mel berdasarkan protokol SMTP telah menjadi salah satu cara yang paling biasa digunakan untuk menghantar e-mel dalam aplikasi Web. Seterusnya, artikel ini akan memperkenalkan secara terperinci proses lengkap penghantaran e-mel menggunakan protokol PHP SMTP.

1. Pengenalan kepada protokol SMTP

SMTP (Simple Mail Transfer Protocol) ialah protokol pemindahan mel ringkas, iaitu protokol yang digunakan untuk memindahkan mel antara komputer. Apabila menghantar e-mel, protokol SMTP perlu dihantar melalui berbilang pelayan Oleh itu, semasa menghantar e-mel, anda perlu menentukan pelayan yang menghantar e-mel dan pelayan yang menerima e-mel. Protokol SMTP mempunyai dua mod pautan: mod teks biasa dan mod penyulitan. Mod teks biasa merujuk kepada protokol SMTP yang tidak menyulitkan Teks biasa penghantaran data boleh dipintas dan diganggu oleh pengguna yang berniat jahat. Mod penyulitan menggunakan protokol SMTP untuk mewujudkan sambungan selamat bagi memastikan keselamatan penghantaran data.

2. Proses menghantar e-mel menggunakan PHP menggunakan protokol SMTP

Proses menghantar e-mel secara kasar dibahagikan kepada tiga langkah: mewujudkan sambungan, mengesahkan identiti dan menghantar e-mel.

  1. Mewujudkan sambungan

Sebelum menggunakan protokol SMTP, anda perlu menentukan alamat dan nombor port pelayan SMTP. Secara amnya, alamat pelayan SMTP boleh didapati daripada pembekal perkhidmatan e-mel. Nombor port pelayan SMTP biasanya 25 atau 465. Apabila menggunakan protokol keselamatan SSL, nombor port ialah 587. Selepas menentukan alamat pelayan SMTP dan nombor port, anda perlu mewujudkan sambungan dengan pelayan SMTP melalui kod PHP.

Kod PHP untuk mewujudkan sambungan adalah seperti berikut:

<?php
$smtp_server = ''; // SMTP服务器地址
$smtp_port = ''; // SMTP服务器端口
$smtp_socket = fsockopen($smtp_server, $smtp_port, $errno, $errstr, 30);
?>
Salin selepas log masuk

Fungsi fsockopen digunakan untuk mewujudkan sambungan dengan pelayan SMTP. Jika sambungan berjaya, pembolehubah $smtp_socket akan mengandungi sambungan ke pelayan SMTP. Jika tidak, pembolehubah $errno dan $errstr akan mengandungi maklumat ralat tentang kegagalan sambungan.

  1. Pengesahan Identiti

Protokol SMTP memerlukan identiti mesti disahkan sebelum menghantar e-mel. Kaedah pengesahan identiti SMTP yang biasa digunakan termasuk PLAIN, LOGIN dan CRAM-MD5. Antaranya, kaedah pengesahan PLAIN tidak menyulitkan kata laluan, manakala dua kaedah lain akan menyulitkan kata laluan.

Kod PHP untuk pengesahan SMTP adalah seperti berikut:

<?php
$email_address = ''; // 发送方的Email地址
$email_password = ''; // 发送方的Email密码
if ($smtp_socket && $email_address && $email_password) {
    // 进行身份认证
    fwrite($smtp_socket, "AUTH LOGIN
");
    fwrite($smtp_socket, base64_encode($email_address) . "
");
    fwrite($smtp_socket, base64_encode($email_password) . "
");
}
?>
Salin selepas log masuk

Antaranya, fungsi base64_encode digunakan untuk mengekod alamat e-mel dan kata laluan untuk mengelakkan pemintasan dan kecurian kata laluan.

  1. Hantar e-mel

Selepas melengkapkan pengesahan SMTP, anda boleh menghantar e-mel melalui protokol SMTP. Sebelum menghantar e-mel, anda perlu menetapkan kandungan e-mel, subjek, penerima, penghantar dan maklumat lain. Kandungan e-mel boleh ditulis dalam kod html atau dalam format teks biasa.

Kod PHP untuk menghantar e-mel menggunakan protokol SMTP adalah seperti berikut:

<?php
$to = ''; // 收件人Email地址
$subject = ''; // 邮件主题
$content = ''; // 邮件内容
$email_from = ''; // 发送方Email地址
$email_to = ''; // 收件人Email地址
if ($smtp_socket && $to && $subject && $content && $email_from && $email_to) {
    // 设置邮件头部
    fwrite($smtp_socket, "MAIL FROM:<{$email_from}>
");
    fwrite($smtp_socket, "RCPT TO:<{$email_to}>
");
    fwrite($smtp_socket, "DATA
");
    // 设置邮件主体
    fwrite($smtp_socket, "From: {$email_from}
");
    fwrite($smtp_socket, "To: {$to}
");
    fwrite($smtp_socket, "Subject: {$subject}
");
    fwrite($smtp_socket, "Content-Type: text/html; charset=utf-8
");
    fwrite($smtp_socket, "
");
    fwrite($smtp_socket, "{$content}
.
");
    // 结束SMTP会话
    fwrite($smtp_socket, "QUIT
");
}
?>
Salin selepas log masuk

Dalam kod di atas, pengepala dan badan e-mel ditetapkan, dan kandungan e-mel dihantar melalui protokol SMTP . Jika e-mel berjaya dihantar, maklumat yang menunjukkan bahawa e-mel telah berjaya dihantar akan dikembalikan.

3. Ringkasan

Artikel ini memperkenalkan secara ringkas proses lengkap menghantar e-mel menggunakan protokol SMTP dalam PHP. Antaranya, mewujudkan sambungan, mengesahkan identiti dan menghantar e-mel adalah pautan utama dalam keseluruhan proses. Dengan mempelajari artikel ini, anda akan menguasai keseluruhan proses penghantaran e-mel menggunakan protokol SMTP, dan memahami cara mewujudkan sambungan selamat dan melaksanakan pengesahan identiti SMTP. Pada masa yang sama, anda juga boleh menetapkan pengepala dan badan e-mel mengikut keperluan sebenar untuk mencapai fungsi penghantaran e-mel tersuai.

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

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles