|
|
|
| вот код
<?php
$to="inga@ukr.net";
$from_mail="hi@ukr.net";
$from_name="inga";
$subject="tema";
$message="<h1>hi</h1>";
$file_name="5.jpg";
function sendMail($to,$from_mail,$from_name,$subject,$message,$file_name) {
$bound="spravkaweb-1234";
$header="From: '$from_name' <$from_mail>n";
$header.="To: $ton";
$header.="Subject: $subjectn";
$header.="Mime-Version: 1.0n";
$header.="Content-Type: multipart/mixed; boundary='$bound'";
$body="nn--$boundn";
$body.="Content-type: text/html; charset='windows-1251'\n";
$body.="Content-Transfer-Encoding: quoted-printablenn";
$body.="$message";
$file=fopen($file_name,"rb");
$body.="nn--$boundn";
$body.="Content-Type: application/octet-stream;";
$body.="name=".basename($file_name)."\n";
$body.="Content-Transfer-Encoding:base64n";
$body.="Content-Disposition:attachmentnn";
$body.=base64_encode(fread($file,filesize($file_name)))."n";
$body.="$bound--nn";
if(mail($to, $subject, $body, $header)) {
echo "<center>Письмо было успешно отправлено!</center>";
} else {
echo "<center>Сообщение не отправлено!</center>";
};
};
sendMail($to,$from_mail,$from_name,$subject,$message,$file_name);
?>
|
$file_name="5.jpg"; - картинка лежит там же где и этот файл
письмо приходит вот какое:
nn--Content-type: text/html; charset='windows-1251'
Content-Transfer-Encoding: quoted-printablenn<h1>hi</h1>nn--Content-Type:
application/octet-stream;name=5.jpg
Content-Transfer-Encoding:base64nContent-Disposition:attachmentnn/9j/4AAQSkZJRgA
BAQAAAQABAAD/2wCEAAkGBhQRERQUEhQTFRQUGRoXGBcYGRs eHBkdISIhFyQdFxggHCoeGh0mIBoeIDU
mJSopLC0tIB4xNTIqNSotLSkBCQoKDgwOFg 8PGiwkHyIyNDE1NC0uLCosLDAyLC8sKy4yN TUpLCwqNSo
sLTAvNC0sNTUsKi4pKjUvLi8pLC0qLP/AABEIAFUAcgMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAA
AAAAABgMFBwQBAv/EAD4QAAIBAgQEBAMGAggHAAAAAAECEQADBB IhMQUGE0EiMlFhB4GRFCNScaHRwdI
VJEKSorHh8CVDU2KCk7L/xAAZAQEAAwEBAAAAAAAAAAAAAAAAAQIEBQP/xAApEQACAgECAwcFAAAAAAA
AAAAAAQIRIQMxBBORBRJBUVJhgSIycdHh/9oADAMBAAIRAxEAPwDcaKgzmqTifOuEwzm3 evqjrEghzuM
w2UjY0AxUUp2/iPgWIAxSkkwBlufyUP8AEfAKSDiVkaeW5/JQDZRSVifipgEj79mmfJbuGIjfwj1qIfF
7h/8A1bv/AKbn7UA9UUjW/i9gGYKLl6WIA+6fvp6UzYrjFu2ud3AUECYJ1JgaAE70BZ0Uq 3fiLgVMNiA
Dv5Lv18m1S4fnrBuQq3wSdhluSf8ADQDLRV IeaLAzzdjpnK8q4ymJ18PoahwvOWGulgl0k oAWGS4IB2J
lBVFOLV2qJpjDRS3hudsLccW0vFnIkDJc1H qJSCPep8BzTYvXTat3czgExlcbRPiKhdJGk zrVrV0QXtF
c+c0VIInSTMn5GKwHmfq3cXeFyLlw3CJIgQAF WDsYUAE+1bpxfE9O0zETEd43IG/zrPeNWvuMQ5LeFbk
CTlG58u1YOL4tcO42rvBo0tHmJ52EzActXs 6kpaC92BUkD1WDv6VDj+FXM7tlslcx1BUzrHrv/GurA4a
71EPiW2LMGSQJya6HTfvXZisKUvNePShb2e YYPGbYSnz32rarZnZXcO4Zbe2WuqGyk5VQk FjAMRGp/l+
R+b3CrAts+S94yyqoMlCumuwM++1WvFbv2Wy1oIwtXHRiwIDKwWCO+aYLTPtVG3ECwGTqKAABDGZEkk5
QB3GnaBRp5tYITGXCcmYJcRYLYg3rZRmuLa Jm2+6zlJaDqI80gaQamxt+4MJiA1++6OrFeoWJADGJMxO
UAmNjNVeENu4vScMDCMWBjMYLRM+x7bmrbizj7LdCkeRhlBmPNpAEDcDTTbaqSb tJF1sxew3DmxOtnxZ
EtoQdCSFymJOoG+saVaYLjBt3PszNGXItvKk65R5iWGkwe/faoeRrwRXztk8Y1MDtG509orhvz/SKnXz
29Y9lqJwjNVJCMnHYbLXUF5zOazcYEiNc/hMmTEQ0b/WqPgeOQ3smHJKtbPVziGY6ABZb1juBvV3Zu 5c
uok3DvA0yoNBOsSB+VJvKjZcQ0kqCp1/8l1/j8q8YaEGnjfHtjb5LubtFvxfHrgr6XFkXHY u0gnwEmVW
GIBAMaQKaOVsv9I2yAwLWbm+xUdMbBiAQZ99aRee26ly2yywyGCNQQSY1Ai nHlVieK2dSR9muQI28Sz8
zpNe8NKKkpeNUUcnVGo0V4DRXqVKzmTAtew 122kBmAifYg/wpF4swbDYpARnKvpOvcbb9j9DWl3WgTp8
6xvmXDXv6wwuEoBcMdIQvm0zk/wC59hXJ7R0o6jhcqp2beGk0pUrKPDcRYXgD cXKtrKxzJEhZ+uY1YuL
nUJP2joi8RqX6eTN37x23rmfFWbjG21v/AJYJ1PmXM8jX3/SpMWou3hbc2my3TZHgh4zRsCF29v3rqqj
Dk6OB8JQ3b5JNxSVyFj5pjxAjQjM2WR7V04 mwvhw6LYCPduHq5D1VZfvI1OpghZ7jtVdc4 XcwqZ1usrJ
ZEjzLMO0Bp2GXt6/KlPD84ughbNqAIE+IjtuZJEaRt7VM4qTz4ER2Hni1i3ZdHzZZnT 8SrPi1APh8sA0
s8x8xPmTouemVJEhZ8zCT7wIqflziRxoa06 wBlVQubvmEbEgCBoIA1qp5lwLW7ipGirAIO aQSX3j0afy
g96jGM5LZOM8bukyWB/NQR31g6d6deH4i01vqG5iLYDKrFyP7QOw8W 2npAP0z7pn0Ont/pTxwu+ti4VL
OVyMHusrZVYgHVgdYAA9CGpJ/S6C3RFzZxO4oD22ZVZoIOYhiQGzAHQDXTKB uaWDxy9B8W4g6CmfnS0W
RVCsxXpsYUkAFBrMRuKS+g34W+h/apUVFKK8Bd5YzYHizDCyCRcVwAB3U6aCIgm R+etOfInEC/FbaEkh
cMxggypISQZ17DekzlTCNKEq5RmAnsIb9Dr/kaafh0v8AxdG8f3mGZjmYsZ0HmOpEKKVbXs NjaBRQKKA
rOZh/VbvbQf8A0KSeP6YXFn0Fz/OtExlkOjKVzAjb1rMOYOKW8mKsl7ct1FI1z KdTsRlPbv3rjdpaM9W
Wm4K6dm3hpxjGVsWOX7K5WuXipulWiCNo/CDGoruxmLZw1kW4YuULShGbPrDEZv8ADPf3 q0wHw3xFxhf
U2Qty0MoLGYZRGaEI2O1Qca5OxeHXqFLDMz k5ku3ZDGWzZXhY7f7muu2o5dIxVeEVNzEj7 MbYjMlgBxs
UIS6SCD+Y+orMrd+PQ+xrRjy7iTZzfZ7fUnKbheWOmaSC2X0G1WgW9 kAOHctEMeugn3EL3M/pVZcRo39
8eqJjpz9L6CXyc7ubwQnM+RRAJ3DidCCI9f0O1abi+TbuQowtLcBPiVbhAgljkzKT4gMs+piqDFYd7nn
wWb0m8ug0MeSYkT9PSpsNh72HIu27RtB0gI LgYNlY6v4RrplmDAM0XEaNYnHqv2Ty5+lljjOTDh8Gwi2
ojICTc1LNGpKgdzr2pdThqrfzocLkH9h8TJ 8uWc4jsdo7VfXOScfxCyj57NtWBBRnckwd2 hImV/WpODf
B25aYm+uGviNB1bqR76Wtau2u53t/w/6l8lKd0LmLv2cMjZj1WuWrcKSSPQ5WgjL7H 0qzxt2L1xBZNx2
kp6aACDrA1j61dYr4U3bl60xNjp20ClCznY QAPAJA039KsRyDidPvrGm33e3zirSeMERXm I3LGKQIfED
DjVQqCW0y5NGZtJJA/D6V3/DsEcVsAiCMIwI+c1c8V+FuJuWwtu7h1IYN5SokCAdFOok6iD9Km5G+G2J
weNGIv3bVwZHTws5aTEeZRpp61CStsteyNH or6iigPTVcOAYdgGaxYZjBJa2hJPuSsk1bd KgWqAit2wA
AAABoANgPYUPaB3AP5ipunR06hq9wc/2Zfwr9BXn2RPwJ/dH7V09Ojp1Xlw8kTbOb7In4E/uj9qDhU/C
un/aP2rp6dHTpy4eSFsiRABAAA9BXtSdOjp1fY gjor76VHSoCOipDZo6XvQEVFS9H3rygJaKK KAKKKKA
KKKKAKKKKAKKKKAKKKKAKKKKAKKKKA//Znspravkaweb-1234--nn
почему нет картинки? что это за символы? | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 19:23)
| | что это за символы?
не повериете, но это и есть картинка :) | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 19:23)
| |
$body.="Content-Transfer-Encoding:base64n";
$body.="Content-Disposition:attachmentnn";
$body.=base64_encode(fread($file,filesize($file_name)))."n";
$body.="$bound--nn";
|
Что это? | |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 19:26)
| | кодируется картинка для пересылки, но там же ее должны обратно раскодировать, чтобы она отображалась. так как нужно делать чтобы картинка была не в символах а картинкой? | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 20:07)
| | Нет. Я имею ввиду, что такое n в конце каждой строки? | |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 20:27)
| | ой, я не знаю, этот код в википедии взяла. этот момент я не поняла, думала так надо, может перенос строки или еще что | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 20:33)
| | Ну вот исправьте на \n и может быть у вас всё заработает.. | |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 20:37)
| | ну да, это исправила. но теперь письмо приходит пустое. теперь и кода картинки нет. как же картинку передать? | |
|
|
|
|
 57.3 Кб |
|
|
для: inga
(16.06.2010 в 20:56)
| | Читайте. Нужно правильно оформлять почтовое отправление. | |
|
|
|
|
|
|
|
для: sim5
(16.06.2010 в 21:13)
| | sim5, я взяла пример из вашего файла
<?php
/*Зададим в переменной $file_name путь до вставляемой картинки.
В нашем случае она находится в том же каталоге, что и файл отправки письма.
Но вместо этого сюда можно подставитьфайл,
полученный сценарием из <INPUT type=file name=file_name>.*/
$file_name = "5.jpg";
$subj = "Отправка изображения";
$bound = "spravkaweb-1234";
$headers = "From: \"Evgen\" <admin@spravkaweb.ru>\n";
$headers .= "To: admin@localhost.ru\n";
$headers .= "Subject: $subj\n";
$headers .= "Mime-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$bound\"\n";
$body = "--$bound\n";
$body .= "Content-type: text/html; charset=\"windows-1251\"\n";
$body .= "Content-Transfer-Encoding: 8bit\n\n";
$body .= "<h3>Привет</h3>Это проба отправки письма с прикрепленной картинкой.<BR>А вот и сама
картинка:<BR><img src=\"cid:spravkaweb_img_1\">";
$body .= "\n\n--$bound\n";
$body .= "Content-Type: image/jpeg; name=\"".basename($file_name)."\"\n";
$body .= "Content-Transfer-Encoding:base64\n";
$body .= "Content-ID: <spravkaweb_img_1>\n\n";
$f = fopen($file_name,"rb");
$body .= base64_encode(fread($f,filesize($file_name)))."\n";
$body .= "--$bound--\n\n";
mail("inga_php@ukr.net", $subj, $body, $headers);
?>
|
письмо не приходит. почему? | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 22:05)
| | Этот пример, содержит неточности. Уж не помню, но там еще и другие такие есть вроде бы. Они не для подражания, а изучения ошибок. Ниже даны несколько почтовых отправлений (тело письма) с различным содержанием. Вот эти отправления созданы правильно, согласно рекомендациям RFC. Можете скопировать эти содержания, сохранить в файле с расширением .eml просмотреть их в Outlook, отправить адресату - гарантия того, что вы их получите.
Если у вас Денвер, то ищите отправления в папке tmp\!sendmail локального сервера, и изучите их в Outlook. Ошибки будут видны.
Данная статья как пример ошибок и рекомендаций. В этом разделе форума есть готовые примеры скриптов рабочих (можете найти их), есть и в приложениях форума такой скрипт. Возьмите его - изучив, найдете неточности в примере выше, вот это и будет хоть каким-то изучением данного вопроса. | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 22:05)
| | так письмо не приходит или картинки нет? | |
|
|
|
|
|
|
|
для: Trianon
(16.06.2010 в 22:58)
| | не приходит письмо(( | |
|
|
|
|
|
|
|
для: inga
(16.06.2010 в 23:56)
| | подскажите пожалуйста. письмо приходит, но картинка в виде символов. так понимаю не правильно указан Content-Transfer-Encoding. как должно быть?
<?
$file_name = "5.jpg";
$subj = "Отправка изображения";
$bound = strtoupper(uniqid(time()));
$headers = "From: \"Evgen\" <admin@spravkaweb.ru>\n";
$headers .= "To: admin@localhost.ru\n";
$headers .= "Subject: ".$subj."\n";
$headers .= "Mime-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$bound."\"\n";
$body = "--".$bound."\n";
$body.="Content-type: text/html; charset=\"windows-1251\"\n";
$body.="Content-Transfer-Encoding: 8bit\n\n";
$body .= "<h3>Привет</h3>Это проба отправки письма с прикрепленной картинкой.<BR>А вот и сама
картинка:<BR><img src=\"cid:spravkaweb_img_1\">";
$body .= "\n\n--".$bound."\n";
$body .= "Content-ID: <spravkaweb_img_1>\n\n";
$body .= "Content-Type: image/jpeg; name=\"".basename($file_name)."\"\n";//думаю проблема тут
$body .= "Content-Transfer-Encoding:base64\n";//или тут
$f = fopen($file_name,"rb");
$body .= base64_encode(fread($f,filesize($file_name)))."\n";
$body .= "--".$bound."--\n\n";
@ mail("inga_php@ukr.net", $subj, $body, $headers);?>
|
| |
|
|
|
|
|
|
|
для: inga
(17.06.2010 в 09:35)
| | http://softtime.ru/forum/read.php?id_forum=1&id_theme=60002&page=1
Вы не хотите читать, а пробуете подставлять. А в сети много информации о почте. | |
|
|
|
|
|
|
|
для: sim5
(17.06.2010 в 10:17)
| | да читала я это. тупенька чуточку значит | |
|
|
|
|
|
|
|
для: inga
(17.06.2010 в 10:19)
| | ставлю
в таком порядке
Content-Type: multipart/related;
Content-type: text/html;
Content-Type: image/jpeg;
нет картинки вообще
а в таком
Content-Type: multipart/mixed ;
Content-type: text/html;
Content-Type: image/jpeg;
картинка приходит но в символах | |
|
|
|
|
|
|
|
для: inga
(17.06.2010 в 10:49)
| | У вас сбой частей тела письма. Не хотите вы изучать. У вас что в качестве локального сервера? | |
|
|
|
|
|
|
|
для: sim5
(17.06.2010 в 12:01)
| | у меня нет локального сервера, я делаю по живому на сайте. сайт на unix | |
|
|
|
|
|
|
|
для: inga
(17.06.2010 в 12:12)
| | Негоже терроризировать почтовые серверы. Заходим сюда, скачиваем и устанавливаем Денвер. Установка его пустяшная, создание виртуального домена тоже простое - нужно создать паки и перезапустить Денвер. Помещайте в созданный домен свой скрипт отправки письма и запускайте его. В папке установленного сервера tmp\!sendmail увидите свое почтовое отправление (оно не отправляется реально). Вот теперь открывайте его в Outlook, выбирайте Свойства --> Подробно (здесь можно просмотреть заголовки) --> Исходное сообщение.
А теперь посмотрите внимательно и изучите тело вашего сообщения. Можете сравнить его с образцами, которые в прикреплении есть. Чай не видно будет причину ошибки? | |
|
|
|
|
|
|
|
для: inga
(17.06.2010 в 12:12)
| | >у меня нет локального сервера, я делаю по живому на сайте. сайт на unix
Это ну ни разу не повод для доблести.
Денвер весит метров 10 отсилы.
И кстати, субъективно, первое время после установки, воспринимается разработчиком, как панацея. | |
|
|
|