PHPMailer: Как сохранить ссылки в текстовой версии? - PullRequest
0 голосов
/ 04 мая 2018

Я использую PHPMailer для отправки короткого HTML-сообщения, содержащего две ссылки (и мне нужно добавить третью). Используя синтаксис:

$mail ->MsgHTML($htmlmsg);

Я получаю текстовую версию, но ссылок больше нет. (просто текст ссылки). Используя синтаксис «Body» и «AltBody»

$mail->Body = $htmlmsg;
$mail->AltBody = $textstr;  //  This is the plain text version

Мне удалось сохранить ссылки, создав свою собственную текстовую версию ($ texttr). Я делаю это с помощью «preg_replace» в ссылках (эффективно удаляя теги и «href = '...», но оставляя URL), ДО применения «strip_tags». Но мне нужно придумать конкретное регулярное выражение для каждая ссылка, которая утомительна и подвержена ошибкам.

Есть ли лучший способ? (Под этим я подразумеваю «одобренный PHPMailer» способ). Это должно быть общее требование.

1 Ответ

0 голосов
/ 04 мая 2018

PHPMailer вообще не волнует. Существует очень базовый встроенный конвертер html в текст , который используется msgHTML. Если вам нужны лучшие результаты, вам следует ввести свой собственный конвертер , который вы можете получить из существующего конвертера, такого как html2text - именно поэтому такие библиотеки и возможность внедрять конвертер, существует.

Один из лучших способов (единственный найденный мной способ, который даже пытается сохранить макет) - это использовать текстовый веб-браузер (например, lynx или elinks), чтобы отобразить HTML-текст для вас, а затем использовать его. , Он медленнее и сложнее в настройке, но дает гораздо лучшие результаты, чем любой подход поиска и замены.

...