как отправлять html письма с использованием почты PEAR - PullRequest
23 голосов
/ 01 сентября 2009

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

тело письма выглядит так:

$body = <<<EOD

Hiya $username

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

Latest Haves
<a href="http://www.exmaple.com/product/have/64/Titan+Fast+Track+SunGlass">Titan Fast Track SunGlass</a>

EOD;

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

Ответы [ 3 ]

29 голосов
/ 01 сентября 2009

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

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

// Constructing the email
$sender = "Leigh <leigh@no_spam.net>";// Your name and email address
$recipient = "Leigh <leigh@no_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>HTML message</p></body></html>';// HTML version of the email
$crlf = "\r\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);
?>

ПРИМЕЧАНИЕ: для того, чтобы вышеприведенный пример работал, нужен пакет Pearl Mime, а также пакет Pear Mail. Вы можете получить пакет здесь https://pear.php.net/package/Mail_Mime/download.

15 голосов
/ 17 октября 2014

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

$headers = array(
    'To' => $recipients,
    'From' => $adminEmail,
    'Subject' => $subject,
    'MIME-Version' => 1,
    'Content-type' => 'text/html;charset=iso-8859-1'
);
3 голосов
/ 12 мая 2012

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

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

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

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

...