Jump to content
  • 0

функция mail() и картинки


savushka
 Share

Question

Помогите, пожалуйста новичку, есть скрипт, который должен отправлять письмо с картинкой, но вместо картинку вижу вот это:

--==Multipart_Boundary_x29323c6321bd9745b520ee38f252626dx

Content-Type: image/jpeg;

name="12769903.jpg"

Content-Disposition: attachment;

filename=""

Content-Transfer-Encoding: binary

яШяа

яА

Щ)G-№#№µрЅn

Іј‚Very Happyг¦јЁyf®sЫґ «њцД3О{`ъп‹н@&ЯqЯT~4Аb{З¬Да-KLн[©eЎ2Ј(зѕТ"ќќГтщd­ў§F*Lзn|-&Ro‡њ

ё^Іn©ИH”ИF

EJ’q$а"mДЏґ§оKo8Щ*$~Р#?›‘2e88%Б±sSU­SўJqDa–c ›Lfнћ]±ф—6«EѕПLљ;{)i†АyЙЌЋ.ѕєk3^т6HЗ¦XЄя

Y}JҐ™SPHЖI&,*ШЂ6zєОИЂ—#hгg«ТЮфЈPZ‘»е!Ъґ6e<'%aУd]љ’•ҐIPМ$RqАб#ЯIјЕLЁ“ж/‡МС8н};gцп8Ђ{Dъг

Вот PHP код:

<?php

if ($_SERVER['REQUEST_METHOD']=="POST"){

$to="savina-marina86@mail.ru";

$subject="запрос на trade-in";

$from = 'germes@turmaster.ru';

$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

//$mime_boundary="simple";

$headers = "From: $from\r\n" .

"MIME-Version: 1.0\r\n" .

"Content-Type: multipart/mixed;\r\n" .

"Content-type: text/plain; charset=windows-1251;\r\n" .

" boundary=\"{$mime_boundary}\"";

$message = 'пользователь с IP-адресом ['.$_SERVER['REMOTE_ADDR'].'] заполнил форму (запрос на trade-in)на сайте компании '.$project_name.' (http://www.fiat-avtogermes.ru/).'."\n\nИмя:\n".$_POST['your_name']."\n\nE-mail:\n".$_POST['mail']."\n\nТелефон:\n".$_POST['phone']."\n\nмарка/модель сдаваемого авто:\n".$_POST['car_delivered']."\n\nгод выпуска сдаваемого авто:\n".$_POST['year_car_delivered']."\n\nописание:\n".$_POST['description']."\n\nтип сделки:\n".$_POST['deal_type']."\n\nмарка модель покупаемого авто:\n".$_POST['car_tobuy']."\n\nпримечание:\n".$_POST['note'];

/* переменные для проверки результатов */

$resultmail = '';

$result1 = '';

$result2 = '';

$resultphoto = '';

$testmail = 1;

$test1 = 1;

$test2 = 1;

/* переменные для проверки результатов */

if (preg_match("%^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$%",$_POST['mail']))

{

$resultmail = 'вы ввели некорректный e-mail.<br>';

$testmail = 0;

}

/* проверка на размер файла, тест 2 */

if (($_FILES["file1"]["error"] == 2) || ($_FILES["file2"]["error"] == 2) || ($_FILES["file3"]["error"] == 2) || ($_FILES["file4"]["error"] == 2)) {

$result2 = 'превышен допустимый размер файлов.';

$test2 = 0;

}

else {

$test2 = 1;

$result2 = '';

}

/* проверка на размер файла, тест 2 */

/* проверка на размер файла, тест 1 */

if ($_FILES["file1"]["error"] == 0) {

if ($_FILES["file1"]["type"] != 'image/jpeg') {

$resultphoto = 'фото 1<br>';

$test1 = 0;

}

}

if ($_FILES["file2"]["error"] == 0) {

if ($_FILES["file2"]["type"] != 'image/jpeg') {

$resultphoto .= 'фото 2<br>';

$test1 = 0;

}

}

if ($_FILES["file3"]["error"] == 0) {

if ($_FILES["file3"]["type"] != 'image/jpeg') {

$resultphoto .= 'фото 3<br>';

$test1 = 0;

}

}

if ($_FILES["file4"]["error"] == 0) {

if ($_FILES["file4"]["type"] != 'image/jpeg') {

$resultphoto .= 'фото 4<br>';

$test1 = 0;

}

}

if ($test1 == 1) {

$result1 = '';

}

else {

$result1 = 'неправильный формат файлов:<br>'.$_FILES["file1"]["type"].'<br>';

}

/* проверка на формат файлов, тест 1 */

$message = "This is a multi-part message in MIME format.\n\n" .

"--{$mime_boundary}\n" .

"Content-Type: multipart/mixed; charset=\"windows-1251\"\n" .

"Content-Transfer-Encoding: 8bit\n\n" .

$message . "\n\n";

foreach($_FILES as $userfile){

$tmp_name = $userfile['tmp_name'];

$type = $userfile['type'];

$name = $userfile['name'];

$size = $userfile['size'];

if (file_exists($tmp_name)){

if(is_uploaded_file($tmp_name)){

$file = fopen($tmp_name,'rb');

$data = fread($file,filesize($tmp_name));

fclose($file);

$data = chunk_split(base64_encode($data));

}

$message .= "--{$mime_boundary}\n" .

"Content-Type: {$type};\n" .

" name=\"{$name}\"\n" .

"Content-Disposition: attachment;\n" .

" filename=\"{$fileatt_name}\"\n" .

"Content-Transfer-Encoding: base64\n\n" .

$data . "\n\n";

}

}

$message.="--{$mime_boundary}--\n";

/*теперь это надо отослать, если все тесты прошли */

if ($testmail != 1 || $test1 != 1 || $test2 != 1) {

echo $resultmail.$result1.$resultphoto.$result2; }

else {

if (@mail($mail_to='savina-marina86@mail.ru', $subject, $message, $headers))

{

echo 'письмо отправлено.';

}

else

{ echo "письмо не отправлено."; }

}

}

?>

В чем проблема?

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Жезть!

1. оформляйте пожалуйста все коды в тегах \

[code\]\[/code\]
2. есть уже готовые библиотеки для отправки mail сообщений и с картинками (sendmail, PHPmailer и т.д.)

происходить это должно примерно так: (не ручаюсь за работоспособность, использую sendmail class)
$mail = new sendmail();
$mail->attachment("myImage.jpg");

$message="<img src=\"myImage.jpg\">...";

$mail->text($message);
$mail->from($from_mail);
$mail->subject($subject);
$mail->to($to_mail);
$mail->send();

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy