За последние 24 часа нас посетили 16285 программистов и 1581 робот. Сейчас ищет 1591 программист ...

Отправка почты PHP, интересный баг

Тема в разделе "Работа с почтой", создана пользователем nexterik, 12 фев 2010.

  1. nexterik

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

    С нами с:
    12 фев 2010
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте уважаемые!

    Я столкнулся с проблемой PHP. Отправляю почту функцией mail(), в заголовке "From" указываю "Администратор <admin@site.ru>". А на выходе PHP заголовок From обрамляет скобками и получается "<Администратор <admin@site.ru>>". Если в заголовке From указываю голый e-mail, то все проходит отлично.
    Почту отправляю через smtp на localhost (стоит почтовый сервер Kerio)

    В итоге почтовик затыкается:
    [11/Feb/2010 18:20:47][2740] {smtps} SMTP server session begin; client connected from localhost:1405
    [11/Feb/2010 18:20:47][2740] {smtps} Sent SMTP greeting to localhost:1405
    [11/Feb/2010 18:20:47][2740] {smtps} Command HELO org-a268eee6e5c
    [11/Feb/2010 18:20:47][2740] {smtps} Sent reply to HELO: 250 mx.dm.site.ru
    [11/Feb/2010 18:20:47][2740] {smtps} Command MAIL FROM:<"Name" <admin@site.ru>>
    [11/Feb/2010 18:20:47][2740] {smtps} Sent reply to MAIL: 550 5.5.4 Invalid address syntax
    [11/Feb/2010 18:20:47][2740] {smtps} Command QUIT
    [11/Feb/2010 18:20:47][2740] {smtps} SMTP server session end

    В интернете искал подобные случаи, выяснилось, что это баг самого PHP
    http://bugs.php.net/43730
    http://bugs.php.net/28038

    Кто-нибудь сталкивался с этим? Пожалуйста, помогите решить вопрос. Каким образом мне следует указать имя отправителя и e-mail.

    Спасибо!!
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    PHP:
    1.  
    2. <?php
    3.  
    4. $to = [email='440hz@php.ru]'440hz@php.ru[/email]';
    5. $from = 'Я <440hz@php.ru>';
    6.  
    7. $headers = 'From: '.$from. "\r\n";
    8.  
    9. mail($to,'Привет','тест',$headers);
    10.  
    Код (Text):
    1.  
    2. Return-path: <440hz@hosting.440hz.ru>
    3. Envelope-to: 440hz@php.ru
    4. Delivery-date: Sat, 13 Feb 2010 16:05:55 +0300
    5. Received: from localhost.440hz.ru ([127.0.0.1]:59702 helo=hosting.440hz.ru)
    6.         by hosting.440hz.ru with esmtps (TLSv1:AES256-SHA:256)
    7.         (Exim 4.69 (FreeBSD))
    8.         (envelope-from <440hz@hosting.440hz.ru>)
    9.         id 1NgHh5-000PvA-2Y
    10.         for 440hz@php.ru; Sat, 13 Feb 2010 16:05:55 +0300
    11. Received: (from 440hz@localhost)
    12.         by hosting.440hz.ru (8.14.2/8.14.2/Submit) id o1DD5tKG099643;
    13.         Sat, 13 Feb 2010 16:05:55 +0300 (MSK)
    14.         (envelope-from 440hz)
    15. Date: Sat, 13 Feb 2010 16:05:55 +0300 (MSK)
    16. Message-Id: <201002131305.o1DD5tKG099643@hosting.440hz.ru>
    17. To: 440hz@php.ru
    18. Subject: Привет
    19. From: Я <440hz@php.ru>
    20. Lines: 2
    21.  
    22. тест
    Код (Text):
    1.  
    2. hosting(440hz):~/test$>php -v
    3. PHP 5.2.9 with Suhosin-Patch 0.9.7 (cli) (built: Apr  7 2009 16:31:03)
    4. Copyright (c) 1997-2009 The PHP Group
    5. Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    6.     with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator