Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Письмо с кликабельной картинкой
Форумы портала PHP.SU » » Вопросы новичков » Письмо с кликабельной картинкой

Страниц (1): [1]
 

1. leshiy - 05 Октября, 2016 - 21:10:43 - перейти к сообщению
Можно ли вообще отправить письмо через посторонний E-Mail сервер через php код со своего сайта с кликабельной картинкой (т.е. если кликнешь на картинку и перейдешь на свой сайт)?
Я использую PHPMailer.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require 'PHPMailerAutoload.php';
  4. $mail = new PHPMailer;
  5. $mail->isSMTP();
  6. $mail->Host = 'smtp.yandex.ru';
  7. $mail->SMTPAuth = true;
  8. $mail->Username = '';
  9. $mail->Password = '';
  10. $mail->SMTPSecure = 'ssl';
  11. $mail->Port = '465';
  12. $mail->CharSet = 'utf-8';
  13. $mail->From = '';
  14. $mail->FromName = 'Alex';
  15. $mail->addAddress('adress@yandex.ru', 'Alex');
  16. $mail->isHTML(true);
  17. $mail->Subject = 'Письмо';
  18. $mail->Body = 'Привет! <p>ВСЕМ!</p>';
  19. $mail->AltBody = 'Приввет! ВСЕМ!';
  20. $mail->addAttachment('a0504.jpg', 'Картинка');
  21. // $mail->SMTPDebug = 2;
  22. if($mail->send()){
  23. echo 'Письмо отправлено';
  24. }else{echo 'Ошибка';}
  25. ?>
  26.  
2. IllusionMH - 06 Октября, 2016 - 01:18:55 - перейти к сообщению
leshiy, банально в тело всунуть ссылку а в ней изображение в тело письма
CODE (html):
скопировать код в буфер обмена
  1. <a href="http://example.com"><img src="..."/></a>
3. leshiy - 06 Октября, 2016 - 11:51:44 - перейти к сообщению
IllusionMH пишет:
leshiy, банально в тело всунуть ссылку а в ней изображение в тело письма
CODE (html):
скопировать код в буфер обмена
  1. <a href="http://example.com"><img src="..."/></a>

Пробовал, не выходит.
PHP:
скопировать код в буфер обмена
  1.  
  2. $aaa = '<a href="http://sait.ru"><img src="a0504.jpg"></a>';
  3. $mail->addAttachment($aaa, 'Картинка');
  4.  
4. Мелкий - 06 Октября, 2016 - 12:25:57 - перейти к сообщению
Не в addAttachment, а в тело. И лучше src указать не http://, а файловым путём на машинке, где выполняется phpmailer. PHPMailer при отправке парсит HTML тело сообщения и нормально встраивает изображения в тело письма так, что с отключенной загрузкой картинок из внешних источников (емнип, дефолтное поведение много у кого) картинка будет отображаться.
5. leshiy - 06 Октября, 2016 - 12:36:20 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $mail->Body = 'Привет! <p>ВСЕМ!</p><br><a href="http://sait.ru"><img src="a0504.jpg"></a>';
  2.  

Так тоже не выходит.
6. Мелкий - 06 Октября, 2016 - 13:19:32 - перейти к сообщению
Что возвращает createBody?
7. leshiy - 06 Октября, 2016 - 13:21:35 - перейти к сообщению
Мелкий пишет:
Что возвращает createBody?

Письмо приходит но вообще без картинки.
8. Мелкий - 06 Октября, 2016 - 13:32:39 - перейти к сообщению
Ещё раз. Я спросил:
Мелкий пишет:
Что возвращает createBody?

А не что вам приходит на почту. Впрочем, там тоже можно посмотреть в исходнике письма. Но зачем дёргать почту, когда можно проверить локально?
9. leshiy - 06 Октября, 2016 - 14:24:55 - перейти к сообщению
Мелкий пишет:
Ещё раз. Я спросил:
Мелкий пишет:
Что возвращает createBody?

А не что вам приходит на почту. Впрочем, там тоже можно посмотреть в исходнике письма. Но зачем дёргать почту, когда можно проверить локально?

А что это и где это посмотреть?
10. Мелкий - 06 Октября, 2016 - 14:33:29 - перейти к сообщению
Публичный метод класса PHPMailer. Который собственно и создаёт тело письма для последующей отправки.
11. leshiy - 06 Октября, 2016 - 14:45:30 - перейти к сообщению
Мелкий пишет:
Публичный метод класса PHPMailer. Который собственно и создаёт тело письма для последующей отправки.

Есть только вот эти классы:
require 'class.phpmailer.php';
require 'class.phpmaileroauth.php';
require 'class.phpmaileroauthgoogle.php';
require 'class.pop3.php';
require 'class.smtp.php';
(Добавление)
С этим вроде разобрался нужно было всего лишь прописать полный адрес до картинки.
А вот почему при отправке письма на 2 разных ящика пишет: SPAM?
$mail->addAddress('ящик@yandex.ru', 'iqqqq');
$mail->addAddress('ящик@mail.ru', 'iqqqq');

 

Powered by ExBB FM 1.0 RC1