gpt4 book ai didi

php - 发送带有纯文本回退的 HTML 时事通讯

转载 作者:太空狗 更新时间:2023-10-29 15:06:30 24 4
gpt4 key购买 nike

我目前正在使用一个脚本,该脚本使用 file_get_contents 来获取 php 文件的内容,然后通过电子邮件将其发送给客户列表。我想更改脚本以允许纯文本回退以降低被标记为垃圾邮件的风险。

这是我目前的脚本:

    function sendit($to,$subject,$body)
{
$headers = "To: <{$to}>\n".
"From: Test Newsletter Admin <newsletter@test.co.uk>\n".
"Reply-To: Test Newsletter Admin <newsletter@test.co.uk>\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 只包含基本的 HTML/CSS 代码。

有人可以建议我如何更改此脚本以配合纯文本回退吗?

感谢您的帮助。

最佳答案

您要查找的内容称为多部分电子邮件。它的主体包含 HTML 和文本,由所谓的“边界”分隔。然后,电子邮件客户端将根据其功能和用户偏好自行确定是显示邮件的 HTML 版本还是文本版本。

有关如何进行设置的示例 ( source ):

$notice_text = "This is a multi-part message in MIME format.";
$plain_text = "This is a plain text email.\r\nIt is very cool.";
$html_text = "<html><body>This is an <b style='color:purple'>HTML</b>" .
"text email.\r\nIt is very cool.</body></html>";

$semi_rand = md5(time());
$mime_boundary = "==MULTIPART_BOUNDARY_$semi_rand";
$mime_boundary_header = chr(34) . $mime_boundary . chr(34);

$to = "Me <me@me.com>";
$bcc = "You <you@you.com>, Them <them@them.com>";
$from = "Me.com <me@me.com>";
$subject = "My Email";

$body = "$notice_text

--$mime_boundary
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

$plain_text

--$mime_boundary
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

$html_text

--$mime_boundary--";

if (@mail($to, $subject, $body,
"From: " . $from . "\n" .
"bcc: " . $bcc . "\n" .
"MIME-Version: 1.0\n" .
"Content-Type: multipart/alternative;\n" .
" boundary=" . $mime_boundary_header))
echo "Email sent successfully.";
else
echo "Email NOT sent successfully!";

关于php - 发送带有纯文本回退的 HTML 时事通讯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com