За последние 24 часа нас посетили 17606 программистов и 1323 робота. Сейчас ищут 1084 программиста ...

Как поставить запятую в поле "From"?

Тема в разделе "Работа с почтой", создана пользователем Enzo_brn, 15 июн 2011.

  1. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Собственно проблема:
    посылаю MIME через PEAR и все было отлично, пока не решил в массиве с заголовками в поле "From" поставить символ запятой:

    PHP:
    1.  
    2. $hdrs = array(
    3. 'From'=>'MyExample[b],[/b] mail <MyExample@mail.ru>',
    4. ...
    5. );
    6.  
    после запятой что-то "сломалось"(( больше сообщения не ходят, error_reporting(E_ALL); и ни одного предупреждения(

    Вывожу элем.массива:
    PHP:
    1. echo $hdrs['From'],'<br>';
    MyExample, mail //выводит ожидаемо, с запятой. Пробовал и на &#44 менять результат 0, а без запятой все Ок!

    Но что не так, перерыв весь http://pear.php.net/manual/en/package.mail.mail-mime.headers.php не нашел((
    Дайте ума дурачку плизз)
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    а так:
    Код (Text):
    1. 'From'=>'MyExample <MyExample@mail.ru>'
     
  3. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Работает и так
    и так:
    Код (Text):
    1. 'From'=>'MyExample mail <MyExample@mail.ru>'
     
  4. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    в этой строке может быть что угодно, кроме символа запятой(((( похоже на баг пира..
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Enzo_brn
    а смысл запятой тут?
     
  6. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Хочу чтоб письмо на почтовый
    ящик приходило в виде: от кого: MyExample, mail <MyExample@mail.ru>
    Однако просто сделать так: от кого: MyExample mail <MyExample@mail.ru>
    Или так: от кого: <MyExample@mail.ru>

    Дело принципа вобщем)
     
  7. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Line 849 mime.php

    PHP:
    1. if (isset($this->_headers['From'])) {
    2.             // Bug #11381: Illegal characters in domain ID
    3.             if (preg_match('#(@[0-9a-zA-Z\-\.]+)#', $this->_headers['From'], $matches)) {
    4.                 $domainID = $matches[1];
    5.             } else {
    6.                 $domainID = '@localhost';
    7.             }
    Мож тут чего мне недает в заголовке запятуб поставить?
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Enzo_brn
    дело в том, что запятая - это служебный символ в заголовке, служащий для разделения элементов,
    т.е. если поставить запятую, то получится, что письмо приходит с двух ящиков, при чём один из них невалидный (MyExample)

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

    вот, вроде так
     
  9. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Спасибо навели на мысль)
    при таком подходе:
    PHP:
    1. 'From'=>"MyExample, mail" <MyExample@mail.ru>,
    //Parse error: syntax error, unexpected '@', expecting ')' in

    зато при таком:
    PHP:
    1. 'From'=>' "MyExample, mail" <MyExample@mail.ru>',
    сообщение приходит, но вот так:
    от кого: "MyExample, mail" <MyExample@mail.ru>
     
  10. Enzo_brn

    Enzo_brn Активный пользователь

    С нами с:
    21 янв 2011
    Сообщения:
    18
    Симпатии:
    0
    Адрес:
    Барнаул
    Хотя проверил на подопытном аутлуке - тоже с кавычками!!! Думаю вопрос решен) Спасибо, Gromo)))