webdevfan
@webdevfan
CEO & Co-Founder "Wacdis"

Какой должен быть текст письма с вложением через SMTP в PHP?

Добрый день!

Используется SMTP Yandex с SSL, порт 465. Отправляется письмо, не используя сторонние библиотеки... Только fsockopen и т.д.... Но вопрос не в способе или технике отправки, а в самом письме. Удается отправить письмо в HTML, но не получается вложить файл...

Так все отправляет:
Date: Tue, 12 Jan 2016 8:19:08 +0000
From: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Mailer: The Bat! (v3.99.3) Professional
Reply-To: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Priority: 3 (Normal)
Message-ID: <172562218.20160112081908@yandex.ru>
To: =?utf-8?Q?NameTo?= <email@email.com>
Subject: =?utf-8?Q?SUBJECT?=
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

Текст письма
.


А так приходит письмо и без файла, и без текста письма:
Date: Tue, 12 Jan 2016 8:19:08 +0000
From: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Mailer: The Bat! (v3.99.3) Professional
Reply-To: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Priority: 3 (Normal)
Message-ID: <172562218.20160112081908@yandex.ru>
To: =?utf-8?Q?NameTo?= <email@email.com>
Subject: =?utf-8?Q?SUBJECT?=
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------A4DE0016483BC21"

----------A4DE0016483BC21
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

Текст письма

----------A4DE0016483BC21
Content-Type: application/octet-stream; name="0.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0.txt"

0KTQsNC50LvQuNC6INGC0LXQutGB0YLQvtCy0YvQuS4g0J7QtNC90LAg0YjRgtGD0LrQsCE=
----------A4DE0016483BC21

.


Дайте, кто может, пример текста письма с вложенным файлом. Если у кого-то есть пример использования вложенной картинки в текст письма, вообще будет супер.

Спасибо.
  • Вопрос задан
  • 1023 просмотра
Решения вопроса 1
Вы неправильно используете boundary, надо добавлять -- перед boundary у открывающего и промежуточных разделителей и -- после баундари после закрывающего разделителя, т.е. если boundary XX то разделители --XX и закрывающая граница --XX--, в вашем случае должно быть
Date: Tue, 12 Jan 2016 8:19:08 +0000
From: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Mailer: The Bat! (v3.99.3) Professional
Reply-To: =?utf-8?Q?NameFrom?= <pochta@yandex.ru>
X-Priority: 3 (Normal)
Message-ID: <172562218.20160112081908@yandex.ru>
To: =?utf-8?Q?NameTo?= <email@email.com>
Subject: =?utf-8?Q?SUBJECT?=
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------A4DE0016483BC21"

------------A4DE0016483BC21
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

Текст письма

------------A4DE0016483BC21
Content-Type: application/octet-stream; name="0.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="0.txt"

0KTQsNC50LvQuNC6INGC0LXQutGB0YLQvtCy0YvQuS4g0J7QtNC90LAg0YjRgtGD0LrQsCE=
------------A4DE0016483BC21--

.


P.S. обратите внимание - Content-Transfer-Encoding для вложенного файла так же был указан неверно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽