#javascript #php #jquery #post #base64
#javascript #php #jquery #Публикация #base64
Вопрос:
Я пытаюсь выяснить, где моя ошибка, и я очень новичок в PHP. Я пытаюсь отправить изображение, созданное с помощью функции js. В настоящее время я запускаю это на localhost, пока не смогу устранить неполадки. Вот несколько фрагментов кода.
Это js-код, в котором я ОТПРАВЛЯЮ изображение в файл php:
$('#send-image-mail-php').click(function() {
yourDesigner.getProductDataURL(function(dataURL) {
$.post("php/send_image_via_mail.php", { base64_image: yourDesigner.getProductDataURL() }, function(data) {
if(data) {
alert("Mail successfully sent!");
}
else {
alert("Mail could not be sent!");
}
});
это php-код:
<?php
$base64_str = substr($_POST['base64_image'], strpos($_POST['base64_image'], ",") 1);
$to = 'myemail@domain.com';//set here your receiving mail address
$subject = 'Fancy Product Designer Test Email'; //set here the mail subject
$message = '';
$bound_text = md5(date('r', time()));
$bound = "--".$bound_text."rn";
$bound_last = "--".$bound_text."--rn";
$headers = "From: myemail@domain.comrn";//set here the sending mail address
$headers .= "MIME-Version: 1.0rn"
."Content-Type: multipart/mixed; boundary="$bound_text"";
$message .= "If you can see this MIME than your client doesn't accept MIME types!rn";
.$bound;
$message .= "Content-Type: text/html; charset="iso-8859-1"rn"
."Content-Transfer-Encoding: 7bitrnrn"
."Email Sent Successfullyrn" //set here the mail text
.$bound;
$message .= "Content-Type: image/png; name="mail_product.png"rn"
."Content-Transfer-Encoding: base64rn"
."Content-disposition: attachment; file="mail_product.png"rn"
."rn"
.chunk_split($base64_str)
.$bound_last;
if(mail($to, $subject, $message, $headers))
{
echo json_encode(1);
} else {
echo json_encode(0);
}
?>
И вот журнал ошибок с моего сервера Apache, работающий локально через XAMPP:
[Sat Sep 12 00:32:37.790441 2020] [php7:notice] [pid 10748:tid 1920] [client ::1:61515] PHP Notice: Undefined index: base64_image in C:\xampp\htdocs\php\send_image_via_mail.php on line 6, referer: http://localhost/product-designer.html
[Sat Sep 12 00:32:37.790441 2020] [php7:notice] [pid 10748:tid 1920] [client ::1:61515] PHP Notice: Undefined index: base64_image in C:\xampp\htdocs\php\send_image_via_mail.php on line 6, referer: http://localhost/product-designer.html
[Sat Sep 12 00:32:37.856441 2020] [php7:notice] [pid 10748:tid 1924] [client ::1:61517] PHP Notice: Undefined index: base64_image in C:\xampp\htdocs\php\send_image_via_mail.php on line 6, referer: http://localhost/product-designer.html
[Sat Sep 12 00:32:37.856441 2020] [php7:notice] [pid 10748:tid 1924] [client ::1:61517] PHP Notice: Undefined index: base64_image in C:\xampp\htdocs\php\send_image_via_mail.php on line 6, referer: http://localhost/product-designer.html
sendmail: Error writing to C:xamppsendmaildebug.log: --- MESSAGE BEGIN ---
sendmail: Error writing to C:xamppsendmaildebug.log: To: myemail@domain.com
sendmail: Error writing to C:xamppsendmaildebug.log: Subject: Fancy Product Designer Test Email
sendmail: Error writing to C:xamppsendmaildebug.log: From: myemail@domain.com
sendmail: Error writing to C:xamppsendmaildebug.log: MIME-Version: 1.0
sendmail: Error writing to C:xamppsendmaildebug.log: Content-Type: multipart/mixed; boundary="f6e9b319c244b41ebc6650ef9c316270"
sendmail: Error writing to C:xamppsendmaildebug.log:
sendmail: Error writing to C:xamppsendmaildebug.log: If you can see this MIME than your client doesn't accept MIME types!
sendmail: Error writing to C:xamppsendmaildebug.log: --f6e9b319c244b41ebc6650ef9c316270
sendmail: Error writing to C:xamppsendmaildebug.log: Content-Type: text/html; charset="iso-8859-1"
sendmail: Error writing to C:xamppsendmaildebug.log: Content-Transfer-Encoding: 7bit
sendmail: Error writing to C:xamppsendmaildebug.log:
sendmail: Error writing to C:xamppsendmaildebug.log: Email sent successfully
sendmail: Error writing to C:xamppsendmaildebug.log: --f6e9b319c244b41ebc6650ef9c316270
sendmail: Error writing to C:xamppsendmaildebug.log: Content-Type: image/png; name="mail_product.png"
sendmail: Error writing to C:xamppsendmaildebug.log: Content-Transfer-Encoding: base64
sendmail: Error writing to C:xamppsendmaildebug.log: Content-disposition: attachment; file="mail_product.png"
sendmail: Error writing to C:xamppsendmaildebug.log:
sendmail: Error writing to C:xamppsendmaildebug.log:
sendmail: Error writing to C:xamppsendmaildebug.log: --f6e9b319c244b41ebc6650ef9c316270--
sendmail: Error writing to C:xamppsendmaildebug.log:
sendmail: Error writing to C:xamppsendmaildebug.log: --- MESSAGE END ---
sendmail: Error writing to C:xamppsendmaildebug.log: Authenticating with POP3 server
sendmail: Error during delivery: Connect tim
Не уверен, почему журнал ошибок прерывается в последней строке. Я закрыл и снова открыл журналы, чтобы убедиться, что я не поймал его на середине слова.
Кроме того, я получал сообщение об ошибке о том, что $ message также не определено, но я, похоже, исправил эту ошибку, объявив ее как «; с остальными объявлениями.
В любом случае, я уже настроил свои файлы php.ini, а также файл sendmail.ini. Я использую gmail для отправки и получения электронной почты. Я ввел SMTP, а также POP… Я надеюсь, что это не то, где я ошибся.
Извините, если это было опубликовано ранее. Мне действительно не помешало бы некоторое понимание. Спасибо за чтение.
Комментарии:
1. Обновление: я удалил всплывающую информацию из sendmail.ini, и это новая ошибка. Я мог бы рвать на себе волосы:
[php7:error] [pid 7480:tid 1924] [client ::1:62901] PHP Parse error: syntax error, unexpected '.', expecting end of file in C:\xampp\htdocs\php\send_image_via_mail.php on line 22, referer: http://localhost/product-designer.html
2. что
getProductDataURL
?3. Это пользовательская функция, используемая в дизайнере продукта, которая создает изображение, которое я пытаюсь передать PHP-скрипту. Вот документация по нему: ссылка
4. Еще одно обновление! Я добавил пароль для конкретного приложения в свою учетную запись Gmail, и теперь электронные письма отправляются, но изображение пустое, и ни один текст сообщения не анализируется. Не совсем квадрат 1, но все та же проблема.