Tôi hiện đang sử dụng tập lệnh sử dụng file_get_contents để lấy nội dung của tệp php và sau đó gửi nó bên trong email đến danh sách khách hàng. Tôi muốn thay đổi tập lệnh để cho phép dự phòng văn bản thuần túy nhằm giảm nguy cơ bị đánh dấu là spam.Gửi bản tin HTML với dự phòng thuần văn bản
Đây là kịch bản tôi có vào lúc này:
function sendit($to,$subject,$body)
{
$headers = "To: <{$to}>\n".
"From: Test Newsletter Admin <[email protected]>\n".
"Reply-To: Test Newsletter Admin <[email protected]>\n".
"MIME-Version: 1.0\n".
"Content-Type: text/html; charset=ISO-8859-1\n";
$mail_sent = @mail($to, $subject, $body, $headers);
return $mail_sent;
}
$content = file_get_contents('attach/newsletter.php');
//require_once('../../func.php');
set_time_limit(0);
date_default_timezone_set('Europe/London');
$log = fopen('send'.date('dmY',time()).'.log','wb');
//$array = file('NonCustClean.txt');
$array = file('devaddresses.txt');
// Delay In Seconds between emails (must be INT)
$delay = 10;
$count = count($array);
$end = time()+ ($delay*$count);
echo "Start Time: ".date('d/m/Y H:i:s',time()).'<br />';
echo "Estimated End Time: ".date('d/m/Y H:i:s',$end).'<br />';
echo "(".dateDiff(time(),$end).")<br />";
foreach ($array as $email)
{
$status = (sendit(trim($email), 'Test Newsletter',$content))?'Sent':'failed';
fwrite($log,date('[d/m/Y H:i:s]',time()).' Email '.$status.' to '.trim($email)."\n");
echo date('[d/m/Y H:i:s]',time()).' Email '.$status.' to '.trim($email)."</br>";
flush();
sleep(10);
}
Newsletter.php chỉ chứa mã HTML/CSS cơ bản.
Có thể ai đó vui lòng tư vấn cách tôi có thể thay đổi tập lệnh này để đi kèm với dự phòng thuần văn bản không?
Cảm ơn bạn đã được trợ giúp.
Bạn đã nghĩ về việc sử dụng một thư viện như [Swiftmailer] (http://swiftmailer.org/)? Câu trả lời này (http://stackoverflow.com/a/29345590/987864) mô tả việc gửi HTML và văn bản thuần tuý dễ dàng như thế nào. – Daan