PHPmailer AddEmbeddedImage из другого образа сервера - PullRequest
0 голосов
/ 20 сентября 2019

В настоящее время я использую phpmailer и использую AddEmbeddedImage.В этой сети используется другой источник данных с двух серверов.http://10.99.09.1/ и http://10.99.99.2 в этом примере.НАСТОЯЩИЙ мой веб находится под http://10.99.99.2 и все скрипты запускаются с http://10.99.99.2, а когда я использую phpmailer и пытаюсь вызвать изображения с сервера http://10.99.99.1, он не работает

$imagescontent='http://10.99.09.1/port/upload/file/'.$line["fil_id"].'.png';
$mail->AddEmbeddedImage($imagescontent, "my-attach", $imagescontent);

но когда я пытаюсь получить изображения с того же сервера, когда скрипт размещен, он работает.Любая идея сделать это работает, где я могу получить изображения с другого сервера

1 Ответ

0 голосов
/ 20 сентября 2019

Нет, вы не можете сделать это напрямую.PHPMailer сознательно избегает действовать в качестве HTTP-клиента, потому что это не то, для чего он нужен, но есть много других функций, пакетов и утилит, которые могут помочь вам в этом.Наиболее просто:

$imagescontent= file_get_contents('http://10.99.09.1/port/upload/file/'.$line['fil_id'].'.png');
$mail->addStringEmbeddedImage($imagescontent, "my-attach", $line['fil_id'].'.png');

Конечно, есть множество вещей, которые могут вызвать сбой при вызове file_get_contents, и множество способов управления его работой, таких как, например,обеспечение аутентификации, использование прокси, запрос определенного формата через заголовок Accept - и именно поэтому PHPMailer не хочет за это отвечать - это почтовый клиент, а не HTTP-клиент.

...