Yaklaşan bazı geçişler hakkında müşterilerimizin bir listesini ele almak için toplu e-posta aracı yapıyorum. Mevcut toplu posta aracımız bu özel durumda kesilmiyor, sadece bunun yerine bir tane oluşturmayı tercih ettim.PHPMailer HTML göstermiyor
Ben-posta mesajı vücut için bir editör sağlamak için TinyMCE kullanarak ve göndermek için PHPMailer yanında bu geçirerek. Outlook gibi bir istemcide görüntülendiğinde html düzgün görüntülenmiyor dışında her şey harika çalışıyor. $mail->isHTML(true)
'un ayarlandığından kesinlikle emin oldum, bu yüzden şimdi kaybettim.
bulk_mail_sender() işlevindeki $ mesajının değerini ve doğru olduğunu ekledim. Bu dizeyi $ mail-> Gövde olarak yapıştırırsam çalışır. Ancak $ mail-> Gövde olarak ayarlanmış $ mesajım varsa, her çeşit garip karaktere dönüşür.
İleti Kaynak:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><p>Hi there,</p>
<p>Â </p>
<p>What is up foo</p>
Kodu: Şimdiye kadar TinyMCE içinde bu düzeltmek için bir yol bulamadı iken
function bulk_mail_sender($vars, $emails, $subject, $message)
{
foreach ($emails as $email)
{
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Host = $vars['opt_host']; // Specify main SMTP Server
$mail->Port = $vars['opt_port']; // TCP port
$mail->Username = $vars['opt_user']; // SMTP Username
$mail->Password = $vars['opt_pass']; // SMTP Password
$mail->SMTPSecure = $vars['opt_type']; // Enable TLS/SSL encryption
$mail->setFrom($vars['opt_sender_email'], $vars['opt_sender_name']);
$mail->addAddress($email);
$mail->addReplyTo($vars['opt_sender_email'], $vars['opt_sender_name']);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $message;
if(!$mail->send())
{
echo 'Message failed to send to ' . $email;
echo 'Mailer Error: ' . $mail->ErrorInfo . '</br></br>';
}
else
{
echo 'Message has been sent to ' . $email . '</br>';
}
}
}
function bulk_mail_output($vars)
{
if (!empty($_POST))
{
$subject = $_POST['subject'];
$message = $_POST['message'];
$emails = $_POST['emails'];
$emails = explode(PHP_EOL, $emails);
bulk_mail_sender($vars, $emails, $subject, $message);
}
else
{
echo '<form method="POST" action="">';
echo 'Subject: <input type="text" name="subject" id="subject"></br></br>';
echo '<textarea rows="10" cols="100" name="message" id="message"></textarea></br></br>';
echo '<h3>Email Addresses</h3>';
echo '<textarea rows="10" cols="100" name="emails" id="emails"></textarea></br></br>';
echo '<input type="submit" value="Submit">';
echo '</form>';
echo '<script language="javascript" type="text/javascript" src="../includes/jscript/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode: "exact",
elements: "message",
theme: "advanced",
entity_encoding: "raw",
convert_urls: false,
relative_urls: false,
plugins: "style,table,advlink,inlinepopups,media,searchreplace,contextmenu,paste,directionality,visualchars,xhtmlxtras",
theme_advanced_buttons1: "cut,copy,paste,pastetext,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,search,replace",
theme_advanced_buttons2: "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,|,forecolor,backcolor,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,|,ltr,rtl,cleanup,code,help",
theme_advanced_buttons3: "", // tablecontrols
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true
});
function toggleEditor(id)
{
if (!tinyMCE.get(id))
tinyMCE.execCommand(\'mceAddControl\', false, id);
else
tinyMCE.execCommand(\'mceRemoveControl\', false, id);
}
</script>';
}
}
Asıl sorunun ne olduğunu söyleme - "düzgün görüntülenmiyor", devam etmek için fazla bir şey yok. Varlıklar veya Unicode içeriği iyi çalışmalı, bu yüzden muhtemelen başka bir şey yanlış yapıyorsunuz. Ayrıca html işleme söz konusu olduğunda bu bakış açısının bir önemsiz yığını olduğunu. – Synchro