


Bagaimana untuk menggunakan baris gilir untuk menghantar e-mel dengan lampiran dalam PHP?
Bagaimana untuk menggunakan baris gilir untuk menghantar e-mel dengan lampiran dalam PHP?
Dalam pembangunan web, menghantar e-mel adalah salah satu keperluan biasa. Walau bagaimanapun, apabila anda perlu menghantar e-mel dengan lampiran, menggunakan baris gilir boleh meningkatkan prestasi dan kebolehpercayaan sistem. Artikel ini akan memperkenalkan cara menggunakan baris gilir dalam PHP untuk menghantar e-mel dengan lampiran dan memberikan contoh kod khusus.
Pertama, kami memerlukan baris gilir untuk menyimpan tugasan e-mel yang akan dihantar. Anda boleh menggunakan beberapa perkhidmatan baris gilir sumber terbuka, seperti Beanstalkd atau RabbitMQ. Dalam artikel ini, kami akan menggunakan Beanstalkd sebagai contoh untuk menerangkan.
Langkah-langkahnya adalah seperti berikut:
- Pasang dan konfigurasikan Beanstalkd
Pertama, anda perlu memasang Beanstalkd pada pelayan dan mengkonfigurasi persekitaran operasinya. Anda boleh merujuk kepada dokumentasi rasmi Beanstalkd untuk melengkapkan langkah ini.
- Buat kelas menghantar e-mel
Seterusnya, kita perlu membuat kelas menghantar e-mel untuk merangkum kaedah menghantar e-mel. Berikut ialah contoh mudah:
class MailSender { public function send($to, $subject, $message, $attachments = []) { // 创建邮件任务 $job = [ 'to' => $to, 'subject' => $subject, 'message' => $message, 'attachments' => $attachments ]; // 将任务放入队列 $this->putJobToQueue($job); } private function putJobToQueue($job) { // 连接Beanstalkd服务器 $pheanstalk = new PheanstalkPheanstalk('127.0.0.1'); // 将任务数据转换为JSON字符串 $jobData = json_encode($job); // 将任务放入队列 $pheanstalk->useTube('mail')->put($jobData); } }
Dalam kelas penghantaran e-mel ini, kami mentakrifkan kaedah penghantaran yang menerima penerima, subjek, kandungan dan lampiran sebagai parameter. Kaedah ini mula-mula mencipta tugasan mel dan kemudian meletakkan data tugasan ke dalam baris gilir.
- Buat tugas mendengar baris gilir
Seterusnya, kita perlu mencipta skrip untuk memantau baris gilir mel dan menghantar mel dalam tugasan. Berikut ialah contoh:
require 'vendor/autoload.php'; use PheanstalkPheanstalk; // 连接Beanstalkd服务器 $pheanstalk = new Pheanstalk('127.0.0.1'); // 设置监听的队列tube $pheanstalk->watch('mail'); while (true) { // 获取队列中的任务 $job = $pheanstalk->reserve(); // 从任务数据中解析出邮件信息 $jobData = json_decode($job->getData(), true); $to = $jobData['to']; $subject = $jobData['subject']; $message = $jobData['message']; $attachments = $jobData['attachments']; // 发送邮件 $mail = new PHPMailerPHPMailerPHPMailer(); $mail->isSMTP(); // 配置SMTP服务器等相关信息 // ... $mail->Subject = $subject; $mail->Body = $message; $mail->addAddress($to); foreach ($attachments as $attachment) { $mail->addAttachment($attachment['path'], $attachment['name']); } if ($mail->send()) { // 邮件发送成功,删除队列中的任务 $pheanstalk->delete($job); } else { // 邮件发送失败,将任务放回队列,稍后重试 $pheanstalk->release($job, 10); } }
Dalam tugas mendengar ini, kami mula-mula menyambung ke pelayan Beanstalkd dan menetapkan tiub mendengar kepada 'mel'. Kemudian, tugasan dikeluarkan secara berterusan daripada baris gilir dan maklumat e-mel dihuraikan. Seterusnya, kami menggunakan perpustakaan PHPMailer untuk menghantar e-mel dan menambah lampiran pada e-mel. Jika e-mel berjaya dihantar, tugas akan dialih keluar daripada baris gilir jika e-mel gagal, tugasan dimasukkan semula ke dalam baris gilir dan cuba lagi kemudian.
- Hantar e-mel dengan lampiran
Kini, kita boleh menggunakan kelas MailSender untuk menghantar e-mel dengan lampiran. Berikut ialah contoh:
$mailSender = new MailSender(); // 发送带附件的邮件 $mailSender->send('to@example.com', '测试邮件', '这是一封带附件的测试邮件', [ [ 'path' => '/path/to/attachment1.pdf', 'name' => 'attachment1.pdf' ], [ 'path' => '/path/to/attachment2.jpg', 'name' => 'attachment2.jpg' ] ]);
Dalam contoh ini, kami membuat instantiate kelas MailSender dan memanggil kaedah hantar untuk menghantar e-mel dengan lampiran. Perlu diingatkan bahawa laluan dan nama fail lampiran perlu ditetapkan dengan betul.
Dengan menggunakan baris gilir untuk menghantar e-mel dengan lampiran, kami boleh menyegerakkan proses penghantaran e-mel dan meningkatkan prestasi dan kebolehpercayaan sistem. Semoga artikel ini bermanfaat kepada anda.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan baris gilir untuk menghantar e-mel dengan lampiran dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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

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

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

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

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

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

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 boleh dibuat dengan menambah dua baris berikut dalam pengawal.
