SMTP. Ошибка при отправке с прикрепленным файлом
-
Подскажите как можно узнать причину ошибки при отправке письма с вложением.
В логе только CURLE_RECV_ERROR: Failure when receiving data from the peer
Если убрать вложение или если вложение где-то до 100 кб отправка проходит без ошибки.
Вложение - это файлик txt с темами и ссылками собранные скриптом.
-
попробовать отправить то же самое через веб-интерфейс и почитать сообщения
-
При отправке через веб интерфейс почты ошибок нету.
Почта отправляется и доставляется.
-
значит вопрос к упаковке данных перед отправкой
включите дебаг в курл и почитайте полностью трейс ответа. Возможно там есть ответы
-
В конце дебага указано 552 message line is too long Connection #0 to host mail.******.by left intact
Я понимаю что 552 ошибка это по превышению размера файла, но размер пересылаемого файла в килобайтах!
И он нормально пересылается через веб интерфейс почты
-
Экспериментальным путем установлен точный размер, пересылаются все текстовые файлики размером до 74кб
Если больше, то ошибка 552
-
This post is deleted!
-
ВОТ ПОЛЕЗНАЯ СТАТЬЯ МНЕ ПОМОГЛА ОТПРАВИТЬ ФАЙЛ TXT И ZIP И RAR
-
@wflfxhosne said in SMTP. Ошибка при отправке с прикрепленным файлом:
ВОТ ПОЛЕЗНАЯ СТАТЬЯ МНЕ ПОМОГЛА ОТПРАВИТЬ ФАЙЛ TXT И ZIP И RAR
Спасибо. Просматривал эту тему, код этот добавлял, в моем случае ничего не меняет.
-
Почтовый сервис какой?
-
@wflfxhosne said in SMTP. Ошибка при отправке с прикрепленным файлом:
Почтовый сервис какой?
свой, корпоративный
-
Проблема возникает когда хотите отправить файл больше 100 мб?
-
По логу.
При удачной отправке окончание лога выглядит - Content-Transfer-Encoding: base64 --GDSs9Q6sfP80bhJ5l175tE--250 1044124141 message accepted for delivery Connection #0 to host mail.*****.by left intact
При неудачной в Content-Transfer-Encoding: base64 - содержится трэш из набора символов на 2-3 листа, смысла весь выкладывать думаю нету, вот небольшой кусокContent-Transfer-Encoding: base64 - D94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEJyb3dzZXJBdXRvbWF0aW9uU3R1ZGlvUHJvamVjdD4KICAgICA8U2NyaXB0PjwhW0NEQVRBW3NlY3Rpb24oMSAvKjEqLywxIC8qMSovLDEgLyoxKi8sMCxmdW5jdGlvbigpewogICBzZWN0aW9uX3N0YXJ0KCJcdTAwN2JcdTAwMjJuXHUwMDIyOlx1MDAyMkluaXRpYWxpemVcdTAwMjJcdTAwN2QiLCAwKSEKCiA***********удалил***ZWQ+MTwvRW5hYmxlZD4KICAgICAgICAgICAgICAgPEFsbG93ZWRUeXBlcz5GaXhlZFN0cmluZzwvQWxsb3dlZFR5cGVzPgogICAgICAgICAgICAgICA8VmFsdWU+a3BtZHJhZ29uQGdtYWlsLmNvbTwvVmFsdWU+CiAgICAgICAgICAgICAgIDxOb3RFbXB0eT4wPC9Ob3RFbXB0eT4KICAgICAgICAgIDwvTW9kZWw+CiAgICAgICAgICA8RGVmYXVsdHMvPgogICAgIDwvTW9kZWxMaXN0Pgo8L0Jyb3dzZXJBdXRvbWF0aW9uU3R1ZGlvUHJvamVjdD4K --TtMEfIFBELheDyqpBif8Sx--552 message line is too long Connection #0 to host mail..by left intact
-
@wflfxhosne said in SMTP. Ошибка при отправке с прикрепленным файлом:
Проблема возникает когда хотите отправить файл больше 100 мб?
Больше 72 кБ
Ни о каких мегабайтах даже речи не идет
-
This post is deleted!
-
15 мб отправляет но есть один нюанс бас бывает просто вылетает
-
exe файлы не отправляет
-
Если взять сервер и поднять там хост + днс то без проблем отправляет exe + большие файлы
-
-
Похоже я определил причину.
Выходной файл, который формируется BAS у меня сохраняется на сетевой диск.
И оттуда же скрипт берет его для отправки по SMTP. Диск подключен к системе как диск D.
И не важно как я прописываю путь, руками (d:/file.txt) или через переменные, все работает идеально, но до достижения файла размера в 72кБ
Поместив выходной файл на локальный диск, такое ограничение пропадает и уже упрется походу в возможности вашего сервера почты.Сомневаюсь, что этот баг будут устранять, т.к. большинство пользователей явно работают с локальными дисками.
-
@kpmtm Да все сперва сохраняют файл локально, а потом проводят с ним манипуляции. После всех обработок локальный файл можно удалить.
Можно обойтись и без отправки RAR на сервер, предварительно закодировав его в BASE64.
Попробуйте закодировать любой RAR в BASE64 и потом подставьте спереди: data:application/x-rar;base64,, затем полученный результат вставьте в адресную строку браузера. Скачается файл без расширения, который откроется с RAR.
В BAS это будет примерно так:data:application/x-rar;base64,[[BASE64_RAR]]
Если расширение файла неизвестно, работает это:
data:application/octet-stream;base64,[[BASE64_RAR]]