Hướng dẫn how to send same email to multiple recipients using phpmailer - cách gửi cùng một email cho nhiều người nhận bằng phpmailer

Bạn cần gọi phương thức

$mail->AddCC('', 'Person One');
$mail->AddCC('', 'Person Two');
// ..
0 một lần cho mỗi người nhận. Như vậy:

$mail->AddAddress('', 'Person One');
$mail->AddAddress('', 'Person Two');
// ..

Tốt hơn nữa, thêm chúng dưới dạng người nhận sao chép carbon.

$mail->AddCC('', 'Person One');
$mail->AddCC('', 'Person Two');
// ..

Để làm cho mọi thứ dễ dàng, bạn nên lặp qua một mảng để làm điều này.

$recipients = array(
   '' => 'Person One',
   '' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}

Sử dụng nhiều địa chỉ email để đăng thư từ lớp PHPMailer

Hướng dẫn how to send same email to multiple recipients using phpmailer - cách gửi cùng một email cho nhiều người nhận bằng phpmailer
Chúng tôi có thể có một danh sách các địa chỉ email mà thông điệp chung sẽ đi. Đối với điều này, chúng tôi sẽ lưu trữ tất cả các địa chỉ email trong một mảng và sau đó chúng tôi sẽ lặp qua mảng để thêm tất cả các email vào địa chỉ gửi đi của chúng tôi.

Hãy để chúng tôi nói rằng chúng tôi có 5 địa chỉ trong một mảng

$address = array('','',
'','','');
Chúng tôi sẽ làm theo hướng dẫn được đưa ra về cách hiển thị các phần tử của một mảng để hiển thị tất cả các địa chỉ.

Mã trên là một mẫu để hiển thị tất cả các địa chỉ email nhưng yêu cầu của chúng tôi là thêm chúng vào danh sách gửi thư của chúng tôi. Bạn có thể thấy tập lệnh đăng thư của chúng tôi bằng lớp PHPMailer tại đây. Đối với tập lệnh này, chúng tôi sẽ thêm vòng lặp mảng như thế này.

From = '';
$email->FromName = 'Your Name';
$email->Subject   = $subject;
$email->Body      = $bodytext;

while (list ($key, $val) = each ($address)) {
$email->AddAddress($val);
}

if(!$email->send()) 
{
 echo "Mailer Error: " . $email->ErrorInfo;
} 
else 
{
 echo "Message has been sent successfully";
}
?>

Thu thập địa chỉ email từ một bảng

Giống như mã trên, chúng tôi có thể thu thập tất cả các địa chỉ email từ một bảng và sử dụng chúng để gửi email cho tất cả. Bạn có thể đọc cách hiển thị dữ liệu từ bảng ở đây. Mã tương tự chúng tôi sẽ sử dụng để thêm địa chỉ vào lớp PHPMailer của chúng tôi.
$sql="select email from table_name ";
foreach ($dbo->query($sql) as $row) {
$email->AddAddress($row[email]);
}

Sử dụng BCC

You may not be interested to show all address to each member of your list, in such a case you can add BCC to each address. You can only change above line in respective AddAddress line.
$email->AddBCC($row[email]);//data taken from table
$email->AddBCC($val);//data taken from array

Hướng dẫn how to send same email to multiple recipients using phpmailer - cách gửi cùng một email cho nhiều người nhận bằng phpmailer



Hướng dẫn how to send same email to multiple recipients using phpmailer - cách gửi cùng một email cho nhiều người nhận bằng phpmailer

plus2net.com
▼ Thêm trên thư PHP

Phương thức addAddress () của thư viện PHPMailer cung cấp một tùy chọn dễ dàng để gửi cùng một email cho nhiều người nhận trong PHP. Bạn có thể sử dụng hàm addAddress () như mẫu mã dưới đây để gửi email đến nhiều địa chỉ với PHPMailer.

$mail->addAddress('');
$mail->addAddress('');

Nếu bạn muốn gửi email đến nhiều địa chỉ với một chủ đề hoặc tin nhắn cơ thể khác, hãy sử dụng hàm ClearAddresses () của lớp PHPMailer trước khi đặt nội dung chủ đề hoặc nội dung cơ thể khác nhau.

$mail->setFrom('', 'SenderName');
$mail->addAddress(''); 
$mail->Subject = 'Payment Confirmation'; 
$mail->isHTML(true); 
$mailContent = 'mail body content...'; 
$mail->Body = $mailContent; 
 
// Send email to customer
$mail->send();

$mail->clearAddresses();

// Send email to admin
$mail->addAddress('');
$mail->Subject = $subjectAdmin;
$mail->Body = $mailContentAdmin;
$mail->send();

Nhận xét của bạn về câu trả lời này:

Dưới đây là một ví dụ về việc sử dụng phương pháp tiêm Simplemh với PHPMailer để gửi nhiều tin nhắn trong một phiên SMTP duy nhất. Xem trang Tiêu đề Simplemh để biết thông tin về những gì các tiêu đề được hiển thị trong tài liệu này đại diện. Xem trang ví dụ PHPMailer Simplemh để biết ví dụ cơ bản hơn với một người nhận.

php

// phpmailer-simplemh-multi-recipient-example.php
// Inject multiple test messages into GreenArrow Engine using PHPMailer and SimpleMH

// Use PHPMailer
require_once('/usr/share/php/PHPMailer/class.phpmailer.php');
require_once('/usr/share/php/PHPMailer/class.smtp.php');

// GreenArrow Engine installation settings
$mail->Host = "mta.example.com"; // Connect to this GreenArrow server
$mail->SMTPAuth = true; // enables SMTP authentication. Set to false for IP-based authentication
$mail->Port = 587; // SMTP submission port to inject mail into. Usually port 587 or 25
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "password"; // SMTP password
//$mail->SMTPDebug = 2; // uncomment to print debugging info

// Timezone
date_default_timezone_set('America/Chicago');

// Campaign Settings
$mail_class = "transactional"; // Mail Class to use
$from_address = "[email protected]";
$from_name = "Newsletter";
$subject = "SimpleMH PHPMailer Example";
$html_body = "HTML body goes here.";
$text_body = "Text body goes here.";

// List of recipients
$recipients = array(
	"[email protected]" => "Name 1",
	"[email protected]" => "Name 2",
);

// Create the SMTP session
$mail = new PHPMailer();
$mail->IsSMTP(); // Use SMTP
$mail->SMTPKeepAlive = true; // prevent the SMTP session from being closed after each message
$mail->SmtpConnect();

// Set headers that are constant for every message outside of the foreach loop
$mail->SetFrom($from_address, $from_name);
$mail->Subject = $subject;
$mail->addCustomHeader("X-GreenArrow-MailClass: $mail_class");

// Send a message to each recipient.
// Headers that are unique for each message should be set within the foreach loop
foreach ($recipients as $email => $name) {

	// Generate headers that are unique for each message
	$mail->ClearAllRecipients();
	$mail->AddAddress($email, $name);

	// Generate the message
	$mail->MsgHTML($html_body);
	$mail->AltBody = $text_body;

	// Send the message 
	if($mail->Send()) {
		echo "Message sent!\n";
	} else {
		echo "Mailer Error: " . $mail->ErrorInfo . "\n";
	}

}

// Close the SMTP session
$mail->SmtpClose();

Làm cách nào để gửi nhiều email trong phpmailer?

Bạn phải tạo một đối tượng PHPMailer hoàn toàn khác cho email thứ hai hoặc bạn chỉ có thể sử dụng AddAddress để gửi cùng một email đến nhiều địa chỉ. Nếu bạn không muốn người gửi gặp nhau, hãy sử dụng BCC.use AddAddress to send the same email to multiple addresses. If you don't want the senders to see each other, use BCC.

Làm cách nào để gửi nhiều email trong SMTP?

Theo mặc định, một vận chuyển SMTP duy nhất tạo ra một kết nối duy nhất và sử dụng lại nó trong thời gian thực hiện của tập lệnh.Bạn có thể gửi nhiều e-mail thông qua kết nối SMTP này.Một lệnh RSET được cấp trước mỗi lần giao hàng để đảm bảo theo dõi chính xác SMTP.A RSET command is issued before each delivery to ensure the correct SMTP handshake is followed.

Phpmailer có giới hạn không?

PHPMailer chỉ là một phần của mã PHP và không có giới hạn nào về tần suất một đoạn mã PHP cụ thể có thể được thực thi trên một trang web.Giới hạn duy nhất trên PHPMailer là giới hạn của bất kỳ phụ trợ email nào bạn đang sử dụng.there are no limits on how often a particular piece of PHP code can be executed on a website. The only limits on PHPmailer are the limits of whatever email backend you're using.

Tại sao bạn có lợi thế khi sử dụng PHPMailer để gửi và nhận email?

PHPMailer có thể sử dụng máy chủ thư không phải địa phương (SMTP) nếu bạn có xác thực.Những lợi thế hơn nữa bao gồm: Nó có thể in các loại thông báo lỗi khác nhau bằng hơn 40 ngôn ngữ khi không gửi email.Nó đã tích hợp hỗ trợ giao thức SMTP và xác thực qua SSL và TLS.It can print various kinds of error messages in more than 40 languages when it fails to send an email. It has integrated SMTP protocol support and authentication over SSL and TLS.