如何发送带有特殊字符的Mandrill消息?

时间:2015-07-03 12:09:14

标签: php special-characters mandrill

我正在使用Mandrill向我们的会员发送邮件 发送正常的短信非常有效 但是Mandrill的'html' =>变量中不会附加带有特殊字符(ä,ë,ï,ö,ü,€,...)的消息。

有人能告诉我如何通过Mandrill发送带有特殊字符的消息吗?

我尝试使用$message_contentstr_replace编辑preg_replace变量,到目前为止都没有。

当我在输入消息内容时使用ï€时,它的效果非常好。但是,当按下提交按钮时,我似乎无法改变这一点。

这是我的代码:

<?
if(isset($_POST['submit']) {
    $subject = $_POST['subject'];
    $from_name = $_POST['from_name'];
    $from_email = $_POST['from_email'];
    $message_content = nl2br($_POST['message_content']);
    $mail_to_members = array();
    $mail_to_members[] = array('email' => 'name@domain.com');
    $mail_to_members[] = array('email' => 'name@domain.com');

    //Get Mandrill API
    require_once './include/src/Mandrill.php'; 
    $mandrill = new Mandrill('API-key');

    //Create mail
    $message = array(
        'subject' => $subject,
        'from_name' => $from_name,
        'from_email' => $from_email,
        'html' => $message_content,
        'to' => $mail_to_members,
    );

    $mandrill->messages->send($message);
}
?>

2 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题,我们使用以下方法解决了这个问题:

mb_convert_encoding($message_content, 'UTF-8', 'ASCII');

它将您的内容从ASCII转换为UTF-8。

答案 1 :(得分:-1)

尝试使用htmlentities

它会将所有特殊字符转换为HTML实体。

例如:

<?php
$string = 'ä - ë - ï - ö - ü - €';
echo htmlentities($string);

将会外出:

&auml; - &euml; - &iuml; - &ouml; - &uuml; - &euro;

任何符合标准的HTML解析器都能够显示它们。