Отправка измененных изображений в PHP по электронной почте
Я работаю над сценарием, который открывает существующее изображение формы и заполняет форму. Я набрал весь код, необходимый для написания текста в форме. Проблема в том, что я пытаюсь отправить измененное изображение на электронную почту. Я использую библиотеки GD ImageCreate, ImageCopy и ImageJPEG. Но вместо сохранения изображения, форма должна быть отправлена по электронной почте. вот что я получил так далеко
$tempname = "forms/temp".mt_rand().".jpg";
imagejpeg($image, $tempname);
$datamsg = chunk_split(base64_encode(file_get_contents($tempname)));
$uid = md5(uniqid(time()));
$message = "Please see attachment for your form";
$emailheader = "From: email@address.com\r\n";
$emailheader .= "Reply-To: email@address.com \r\n";
$emailheader .= "MIME-Version: 1.0\r\n";
$emailheader .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n";
$emailheader .= "This is a multipart message in Mime-Format\r\n";
$emailheader .= "--" .$uid."\r\n";
$emailheader .= "Content-Type: text/plain;\r\n";
$emailheader .= "Content-Transfer-Encoding: 7bit\r\n";
$emailheader .= $message ."\r\n";
$emailheader .= "--" .$uid."\r\n";
$emailheader .= "Content-Type: Image/JPEG;name=\"jtstemp.jpg\"\r\n";
$emailheader .= "Content-Transfer-Encoding: base64\r\n";
$emailheader .= "Content-Disposition: attachment; Filename=\"jtstemp.jpg\"\r\n";
$emailheader .= $datamsg."\r\n";
if(mail("recipient@address.com", "Sample Subject", "", $emailheader)){
echo "success";
}else{
echo "failure";
}
Письмо зарегистрировано как вложение, но оно пустое. Также не отображается обычное тестовое сообщение.
1 ответ
Я бы очень посоветовал вам использовать библиотеки, которые созданы для него.
- Хороший для изображений: https://imagine.readthedocs.io/en/latest/
- Подходит для писем: http://swiftmailer.org/ или https://framework.zend.com/manual/2.1/en/modules/zend.mail.introduction.html
Вы бы справились с работой намного быстрее, чем пытались бы реализовать ее самостоятельно.