Код отправляется 2 раза без правильного изображения

Я пробовал этот код из сообщения, но этот код отправляет два письма в один файл.

Файл электронной почты отправляет электронное письмо два раза, используя php-почту функция

Дайте мне знать, что я делаю неправильно -

<?php
function mytextoverimage( $mytext ) {
$headurl = 'http://dummyimage.com/600x400/ffffee/00d5ff.jpg';
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg($headurl);
$black = imagecolorallocate($jpg_image, 1, 1, 1);
$font_path = 'myfont/arial.ttf';
$text = $mytext;
imagettftext($jpg_image, 24, 0, 175, 85, $black, $font_path, $text);
imagejpeg($jpg_image);
imagedestroy($jpg_image);
}

$to = "[email protected]";
$subject = "This is a image conversion from Developer Zone";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$message = '

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Title</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="0" border="0" bgcolor="#f0f0f0" style="color:666666;text-align:left; font:12px Verdana, Geneva, sans-serif">
<tr>
<td >'.mytextoverimage('Developer').'</td></tr></table></body></html>';

    mail($to,$subject,$message,$headers); die;

Дайте мне знать, что я делаю неправильно, это правильный метод, который я использую -


I followed this URL but hard to crack any help from this page- http://php.net/manual/en/function.imagejpeg.php

Я даже попытался сохранить этот метод mytextoverimage() в другом файле, но по-прежнему не помогал, отправляя по электронной почте дважды :(

3
nl ja de
Это может произойти, когда клиент будет собирать все электронные письма для одного и того же пользователя и хранить их за одну историю. Предположим, вы удалили все, что вы отправили, и снова проверьте его
добавлено автор epsilones, источник
@Newben я даже пробовал даже это .. очистка/удаление, но все же не работа, если вы попробовали этот код, просто изменив $ to = "[email protected]"; на ваш адрес электронной почты вы определенно поймете проблему лучше
добавлено автор Trialcoder, источник
@ EnnoGröper На самом деле у меня есть динамический контент, который я хочу встроить поверх изображения (вроде водяного знака, но не совсем). У меня есть изображение и текст (имена пользователей), в то время как в точке кода я отправляю электронное письмо. Оно содержит этот образ. Если его gmail/yahoo - это нормально. Но проблема в Outlook, т.е. я пытаюсь это сделать вещь
добавлено автор Trialcoder, источник
Подсказка отладки: Вставьте микропрограмму запроса ( $ _ SERVER ['REQUEST_TIME_FLOAT'] ) в почту. Затем вы увидите, отправлено ли электронное письмо в одно и то же время или если есть небольшая разница. Вы можете дополнительно улучшить это с помощью сеанса, зная точно, когда отправляется более одного электронного письма, с помощью которого скрипт инициализируется точным запросом.
добавлено автор hakre, источник
Какова ваша цель? Должно ли изображение быть встроено в ваш адрес электронной почты или храниться на вашем веб-сервере и просто указываться по электронной почте?
добавлено автор Enno Gröper, источник

3 ответы

Функция mytextoverimage() ничего не возвращает - она ​​просто отправляет jpeg-изображение в браузер.

Я переработал ваш код для отправки одного и того же изображения по электронной почте - обратите внимание, что отправлено только изображение, а не HMTL.

If you want to send an image as part of an HTML document, you need to go a step further and create a multipart message - check out How to attach and show image in mail using php?

Это работает для Gmail на Iceweasel 10.0.11.

<?php
function mytextoverimage( $mytext )
{
    $headurl = 'http://dummyimage.com/600x400/ffffee/00d5ff.jpg';
    $jpg_image = imagecreatefromjpeg($headurl);
    $black = imagecolorallocate($jpg_image, 1, 1, 1);
    $font_path = 'myfont/arial.ttf';
    $text = $mytext;
    imagettftext($jpg_image, 24, 0, 175, 85, $black, $font_path, $text);
    ob_start(); //Get the image data from the output buffer
    imagejpeg($jpg_image);
    imagedestroy($jpg_image);
    return chunk_split(base64_encode(ob_get_clean())); //return the image data, encoded for email transfer
}

$to = "[email protected]";
$subject = "This is a image conversion from Developer Zone";
// --- Note the change from text/html to image/jpeg ---
$headers = "Content-type: image/jpeg;\r\n";
//$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'Content-Transfer-Encoding: base64' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$message = mytextoverimage('Developer');

    mail($to,$subject,$message,$headers); die;
2
добавлено
Изначально код Swapnesh даже работал для меня, но ваш код намного лучше .. спасибо за решение .. очень хорошо продуманный..thx для каждого усилия :)
добавлено автор Trialcoder, источник

В соответствии с моим вопросом я решил это, как в этом случае -

<?php
function myimagecreate( $name ) 
{
$headurl = 'http://dummyimage.com/600x300/f5ebf5/f2f2f7.jpg';
header('Content-type: image/jpeg');
$text = $name;
$name =$name.".jpg";
$filepath = 'http://MY_SITE_URL.com/'."myfont";
$jpg_image = imagecreatefromjpeg($headurl);
$black = imagecolorallocate($jpg_image, 1, 1, 1);
$font_path = 'myfont/Ayuma2yk.ttf';
imagettftext($jpg_image, 24, 0, 175, 85, $black, $font_path, $text);
imagejpeg($jpg_image,$name);
imagedestroy($jpg_image);
return $name;
}

$to      = '[email protected]';                
$subject = 'Swapnesh Sinha - For PHP GD Library';           
$message = '
            
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Swapnesh Sinha</title>
            </head>
            <body>
            <table width="600px" bgcolor="#f0f0f0" style="color:666666;text-align:left; font:12px Verdana, Geneva, sans-serif">
            <tr>
            <td>
            
            </td>
            </tr>
            </table>
            </body>
            </html>';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Swapnesh Sinha '. "\r\n";

$bool = mail($to,$subject,$message,$headers);
if($bool)
echo "Email is sent successfully";
else
echo "Something is missing in the code, please check the code properly!!";          

?>

Просто сохраните код в любом корневом файле «Yourfile.php» и запустите.

Это создаст изображение и сохранит его в корневом каталоге (вы также можете принудительно сохранить его в другом месте).

Следуйте этим двум ссылкам,

LINK 1 LINK 2

1
добавлено

Yes you are doing it wrong. Imagejpg function returns and image, but you need a url to put it inside a tag. What you should do is use SWIFT mailer and send that image you created as ann attachment to the email. you can read on it here: http://swiftmailer.org/docs/messages.html

Это будет похоже на следующее:

 //Create the message
 $img = $message->embed(Swift_Image::fromPath('body1.jpg'));

 //Set the body
 $message->setBody(
   '<html>' .
   ' <head></head>' .
   ' <body>' .
   " "
   ' </body>' .
   '</html>',

   'text/html' //Mark the content-type as HTML
 );
1
добавлено
@Dracony Я не хочу использовать для этого другой инструмент, хотя +1 для ваших усилий
добавлено автор Trialcoder, источник
Пожалуйста, не изменяйте правила игры.
добавлено автор Gabriel Santos, источник
@GabrielSantos: На первый взгляд, я согласен. Но если пользователь1594368 хочет вставить изображение в электронное письмо, он должен использовать другие инструменты. Использовать функцию mail() - это плохая идея для нескольких сообщений mime. В руководстве PHP рекомендуется использовать PEAR :: Mail_Mime.
добавлено автор Enno Gröper, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)