Я использую следующий сценарий для отправки электронной почты пользователям нашего веб-сайта:
function mailerExpressBlueHost(array $mailInputs){
require_once '../../includes/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->IsMail();
$mail->SetFrom('[email protected]');
$mail->addAddress($mailInputs['addAddress']); // use for production;
$mail->AddBCC("[email protected]"); // set BCC: counts as part of the 500 limit;
$mail->AddEmbeddedImage("../images/newswagimageSmall.jpg", "swag-logo");
$mail->Subject = $mailInputs['subject'] ;
$mail->Body = $mailInputs['body'];
$mail->IsHTML(true);
$mail->ContentType = "text/HTML";
if (!$mail->send()) {
$msg = 'Message could not be sent.' . 'Mailer Error: ' . $mail->ErrorInfo;
}else{
$msg = 'Message has been sent';
}
$mail->ClearAddresses();
return $msg;
}
при просмотре письма в ms outlook письмо выглядит так:
но при просмотре на Iphone это выглядит так:
Есть ли способ скрыть или разместить в заголовке строку темы вместо того, чтобы она отображалась в теле? (тема письма: Подтверждение списка рассылки SWAG!)





Это просто разница между почтовыми клиентами. Вы ничего не можете с этим поделать.
Отдельно вы используете очень старую версию PHPMailer (обновите ее), и вы можете удалить эти строки из своего скрипта, поскольку они ничего не делают:
$mail->IsMail(); //This is the default, so does nothing
$mail->ContentType = "text/HTML"; //Calling isHTML does this for you, but correctly
$mail->ClearAddresses(); //This does nothing as the instance is destroyed when it goes out of scope
В зависимости от того, какую именно старую версию вы используете, вы можете ждать, пока кто-нибудь воспользуется содержащимся в ней RCE. Я бы посчитал это "сломанным".
Спасибо за информацию. Я очень верю в то, что если все в порядке, не чините это.