Подтвердить что ты не робот

Как отправить html-почту с помощью почты PEAR

Я использую почтовую систему PEAR для отправки аутентифицированных почтовых сообщений. Мне нужно отправить письма HTML, в которых есть alinks.It работает нормально, прежде чем я начну использовать почту PEAR. Теперь я не могу отправлять письма HTML.

Тело письма выглядит следующим образом:

$body = <<<EOD

Hiya $username

You might be interested in the current 'haves' and 'wants' on example.com

Latest Haves
<a href="#" onclick="location.href='http://www.exmaple.com/product/have/64/Titan+Fast+Track+SunGlass'; return false;">Titan Fast Track SunGlass</a>

EOD;

тег появляется, как есть в почте. Любая идея, как решить эту проблему. Помощь по Pls.

4b9b3361

Ответ 1

Если вы следуете этому примеру, нет причин, по которым он не должен работать:

<?
        include('Mail.php');
        include('Mail/mime.php');

        // Constructing the email
        $sender = "Leigh <[email protected]_spam.net>";                              // Your name and email address
        $recipient = "Leigh <[email protected]_spam.net>";                           // The Recipients name and email address
        $subject = "Test Email";                                            // Subject for the email
        $text = 'This is a text message.';                                  // Text version of the email
        $html = '<html><body><p>This is a html message</p></body></html>';  // HTML version of the email
        $crlf = "\n";
        $headers = array(
                        'From'          => $sender,
                        'Return-Path'   => $sender,
                        'Subject'       => $subject
                        );

        // Creating the Mime message
        $mime = new Mail_mime($crlf);

        // Setting the body of the email
        $mime->setTXTBody($text);
        $mime->setHTMLBody($html);

        $body = $mime->get();
        $headers = $mime->headers($headers);

        // Sending the email
        $mail =& Mail::factory('mail');
        $mail->send($recipient, $headers, $body);
?>

Примечание Для того, чтобы приведенный выше пример работал, нужен пакет Mear Pear Mail в дополнение к Pear Mail. Вы можете получить пакет здесь https://pear.php.net/package/Mail_Mime/download.

Ответ 2

Как выглядят ваши заголовки? Вот мои:

$headers = array(
    'To' => $recipients,
    'From' => $adminEmail,
    'Subject' => $subject,
    'MIME-Version' => 1,
    'Content-type' => 'text/html;charset=iso-8859-1'
);

Ответ 3

Обратите внимание, что пример, опубликованный karim79, имеет параметр заголовка, который может вызвать у вас много горя: "Return-Path" - когда я включил этот параметр, как пример, это помешало мне добавить имя от имени, работал только адрес электронной почты отправителя.

В частности (когда я добавил параметр debug, чтобы увидеть, что происходит), добавлены дополнительные угловые скобки, добавленные вокруг имени, поэтому он попытался отправить это на SMTP-сервер:

  From: < from name < имя@domain.com → или
  From: < "from name" < имя@domain.com → когда я пытался использовать кавычки.
Это заставило соединение smtp выйти с ошибкой неправильного адреса.

Кроме того, при использовании класса mime_mail вам нужно указать параметр "To:" в заголовках или он будет отправлен на нераскрытые адреса при его получении. Поэтому замените параметр Return-Path параметром To и он будет работать.