Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mail() и mail.ru, Неккоректное отображение на mail.ru 
:(
    Опции темы
Aver78
Дата 22.1.2014, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Производится рассылка с помощью mail() по адресатам. Везде все приходит нормально, только mail.ru (ну и его производные домены) отличился. Не декодирует тело письма и вложения. 
То есть идет отправка(отправка использует самописный класс, но думаю по казваниям все понятно)
Код

           $this->from_name='=?".$this->encode."?B?".base64_encode($this->from_name)."?=';
      $this->header.="From: ".$this->from_name."<".$this->from.">".$eol;
      $this->header.="Subject: =?".$this->encode."?B?".base64_encode($this->subject)."?=".$eol;
      $this->header.="Mime-Version: 1.0".$eol;
      $this->header.="Content-Type: multipart/mixed; boundary=\"".$bound."\"".$eol;

      $this->body="--".$bound.$eol;
      $this->body.="Content-type: text/html; charset=".$this->encode.$eol;
      $this->body.="Content-Transfer-Encoding: base64".$eol;
      $this->body.=$eol;
      $this->body.=chunk_split(base64_encode($this->message)).$eol;

foreach ($this->files['size'] as $file_num=>$size)
    if ($size>0){
      $file=fopen($this->files['tmp_name'][$file_num],"rb");
      $this->body.="--".$bound.$eol;
      $this->body.="Content-Type: application/octet-stream; name=\"=?".$this->encode."?B?".base64_encode($this->files['name'][$file_num])."?=\"".$eol;
      $this->body .= "Content-Transfer-Encoding: base64".$eol;
      $this->body .= "Content-Disposition: attachment; filename=\"=?".$this->encode."?B?".base64_encode($this->files['name'][$file_num])."?=\"".$eol;
      $this->body.=$eol;
      $this->body .= chunk_split(base64_encode(fread($file,filesize($this->files['tmp_name'][$file_num]))));
                }



После прихода на почту, у всех все нормально, а у мейл, как я и писал выше, приходит что то вроде -

Код

Content-type: text/html; charset=utf-8

 Content-Transfer-Encoding: base64



 PHA+0KLQtdGB0YIg0YLQtdGB0YIg0YLQtdGB0YI8L3A+

Content-Type: application/octet-stream; name="=?utf-8?B?bm9uYW1lLmRvYw==?="

 Content-Transfer-Encoding: base64

 Content-Disposition: attachment; filename="=?utf-8?B?bm9uYW1lLmRvYw==?="



 0M8R4...... и т.д. не стану приводить весь файл.

  
В итоге. Кодирования с указанием чем кодировано типа - "=utf-8?B?закодированный текст" декодируется нормально, а  Content-Transfer-Encoding: base64 - игнорируется. 

Есть такие кто боролся и победил ?

Это сообщение отредактировал(а) Aver78 - 22.1.2014, 09:15
PM MAIL   Вверх
capitan
Дата 24.1.2014, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Может проблема в самописном классе? Зачем использовать велосипед? Есть нормальный класс phpmailer.
Создайте тестовый файл и отправьте письмо через обычную функцию mail. Примеры есть на http://php.net/manual/en/function.mail.php
После этого будет ясно где проблема. Или в классе или в настройках хостинга.

 
PM MAIL WWW ICQ   Вверх
Aver78
Дата 24.1.2014, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



А зачем мне использовать сторонний класс и разбираться с его работой если я могу использовать свой, который знаю досконально и могу легко модифицировать без часовых копаний в коде и попыток понять - а зачем оно сделано вот так? Для чего его собственно и писал. 

По поводу просто письма - не интересно, даже если обычное тесктовое письмо без вложений и без кодирования дойдет нормально, мне это ничего не даст. Ибо мне нужно с кодированием и вложением. К тому же у меня и юзается в итоге именно mail() о чем я упоминаю в названии темы.
Все создаваемые заголовки и принцип кодирования виден из примера.

При чем проблема только с mail.ru, так что, вероятнее всего, у него какой то свой прикол. Например какой то нестандартный заголовок по которому он определяет прнцип декодирования. Или стандартный, про который я не знаю. Или по его формату должен быть дополнительный перевод строки. Я собственно написал и в сам mail.ru , но не особо верится что получу ответ, а не отписку как они это любят.  

Резюмируя. Мне нужно найти ошибку и способы борьбы с ней, а не ссылку на сторонний класс, или предложение использовать smtp самого мейла.
PM MAIL   Вверх
capitan
Дата 24.1.2014, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Цитата(Aver78 @ 24.1.2014,  15:12)
... я могу использовать свой, который знаю досконально и могу легко модифицировать без часовых копаний в коде и попыток понять - а зачем оно сделано вот так?

Ага, уже 2 дня копаний результата не принесли. Видимо плохо знаете свой класс. А сторонний работает и все отсылает. У меня проблем с ним не было.
PM MAIL WWW ICQ   Вверх
Aver78
Дата 24.1.2014, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Свой класс я знаю хорошо, я не знаю чего в нем не достает именно для mail.ru. Переходить на сторонний я любом случае не буду, ибо мой заточен под мои требования и потребности. 
2 дня копаний - нет. Я еще не начинал копаться, надеялся услышать ответ если кто сталкивался. Но, сулдя по всему нет, или написать лениво. Может быть и придется распотрошить phpmailer что бы найти почему у него нет проблем, если их и правда нет, но это в самом оптимистичном случае полдня ковыряния чужого, ненужного кода. Жаль.
PM MAIL   Вверх
bars80080
Дата 25.1.2014, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Aver78 @  24.1.2014,  17:42 Найти цитируемый пост)
Свой класс я знаю хорошо, я не знаю чего в нем не достает именно для mail.ru

свой я знаю хорошо, но он не работает.
сей синдром среди программистов известен и широко распространён и находится в области детских болезней. в смысле, им страдают преимущественно начинающие. потом уверенность, что можешь написать лучше, чем лучшие среди нескольких миллионов яйцеголовых проггеров сама улетучивается

по поводу phpmailer-ра у меня простой опыт - года четыре назад я его нашёл, подключил и с тех пор ни разу в код не лазил.
просто никогда

его не надо настраивать
в нём не надо копаться

ни-ког-да
PM MAIL WWW   Вверх
Aver78
Дата 25.1.2014, 12:20 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Где то я видел классификацию программистов, и там было такой тип - который всегда за сторонние разработки, ибо сам ничего делать не умеет, только пользоваться сторонним кодом. Пусть он неудобен для данной задачи, пусть он работает в десятки раз медленней чем хотелось бы, пусть что для того что бы сделать рассылку нужно написать десяток строк, пусть он не умеет работать с входящими массивами,  зато уже кем то сделан. 
И вместо ответа по теме они лазиют по формума и орут что все кто пишет свое дебилы тратящие время зря, а я вот такой замечательный, я сижу на какой-нибудь джумле и считаю себя программистом потому что умею ее инсталировать. 

PM MAIL   Вверх
bars80080
Дата 25.1.2014, 15:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Aver78 @  25.1.2014,  12:20 Найти цитируемый пост)
Где то я видел классификацию программистов

очень интересно. но вы принесёте себе больше пользы, если почитаете не ушлую статью с неизвестного форума, а качественное чтиво о методиках программирования. речь даже не о Суравски и Гутмансе, которые писали пхп, а Аткинсоне или хотя бы Зандстре. у последнего даже есть статейка под названием "изобретаем велосипед". любая разработка - это тысячи потраченных человеко-часов. понятное дело, что в какой-то мере вы развиваетесь, занимаясь написанием различных модулей, но неужели вам не жалко своего собственного труда - заниматься ерундой, разбираясь в технических нюансах частного протокола, вместо совершенствования в самом программировании, повышая своё качество программиста и квалификацию специалиста.

мне достаточно было покопаться один день в заголовках и аспектах генерации письма, чтобы понять, что это скучное времяпрепровождение.
мне потребовалось покопаться в phpmailere полчаса, чтобы понять, что я занимался до этого бессмысленным делом. всё уже сделано.
дальше копаться в почте не зачем. знаний это не даст никаких, кроме как звания "специалист, который никому не нужен". я могу, конечно, ошибаться, и вы являетесь разработчиком почтовых сервисов и в дальнейшем создадите новый протокол, который оставит существующую почту в каменном веке. но что-то мне подсказывает, что это не так.

1. ваш код не работает.
2. вам сказали, что есть замечательное средство, в котором уже пофиксены тысячи аспектов, с которыми вам ещё придётся столкнуться.

Цитата(Aver78 @  25.1.2014,  12:20 Найти цитируемый пост)
Пусть он неудобен для данной задачи, пусть он работает в десятки раз медленней чем хотелось бы, пусть что для того что бы сделать рассылку нужно написать десяток строк, пусть он не умеет работать с входящими массивами

пхпмейлер удобен для любой задачи, надо просто уметь пользоваться
работает он гораздо быстрее, чем ваш костыль
для того чтобы им пользоваться достаточно написать всего одну строчку
всё что требуется от почтового рассыльщика он умеет, исполнит все ваши самые смелые фантазии

п.с. оставьте джумлу при себе. и в отличие от вас я не только писал почтовые рассыльщики, но и почтовые клиенты, а также автоматические сервисы дербанившие письма из уйма количества кодировок, занимавшихся декодированием из кучи разных методов шифрования для выявления требуемой информации. и я вам советую - phpmailer

п.п.с. для тех кому интересно, на самом деле phpmailer уже прошлый век, так как не решает глобальной задачи - ваш сервер всегда могут забанить и письмо не дойдёт до адресата. благо ушлые товарищи уже подумали об этом и реализовали целую сетку серверов рассылки. он даёт 100% гарантию прихода письма, так же лёгок в задаче, как phpmailer, но он платный. впрочем, для коммерческой организации, где рассылка - не спам, а обязательный сервис уведомлений - совсем не дорого.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.