За последние 24 часа нас посетил 22901 программист и 1051 робот. Сейчас ищут 648 программистов ...

Проблема с imap_mail()

Тема в разделе "Работа с почтой", создана пользователем Dmitry, 3 май 2006.

  1. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Есть скрипт, который через imap коннектится к ящику и посылает по адресу из базы письмо с паролем и другой информацией. Но есть проблема. Письма из него не доходят. При этом никаких ошибок не генерируется. И что удивительно если посылать письма на ящики, зарегистрированние на хостинге, они доходят. А на mail.ru никак. Я уже неделю над этим бьюсь. В службе поддержки и на форуме у хостера, ничего толкового не сказали. Хостинг powweb.com. Может быть дело в каких-то специфических заголовках. Я пробовал по-разному и с заголовками и без. Через веб интерфейс с ящика письма доходят куда угодно, а из скрипта никак.

    Вот скрипт:
    Код (Text):
    1. $mbox = imap_open ("{mail.mydomain.com:143/imap/notls}", "username", "passwordl") or die('connection failed '.imap_last_error());
    2.  
    3. $to='my_email@bk.ru';
    4. $subject = "Test";
    5. $message = "This is the text.";
    6.  
    7. $headers='Content-type: text/html\n'.'charset=windows-1251\n';
    8.  
    9. $message = "This is the text.";
    10.  
    11. imap_mail ($to, $subject, $message, $headers) or die('send failed '.imap_last_error());
    12.  
    13. imap_close($mbox);
    Подскажите в чем дело. Я уже начал отчаиваться!
     
  2. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry

    открой для себя Error-reporting заголовоки (header) будешь получать уведомления об ошибках доставки.
     
  3. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Попробуй также получить письма на какойнить другой удаленный ящик (не своего хостера)
     
  4. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    А что это и как это сделать? Или это error_reporting(E_ALL)? Если да, то это не помогло.

    Ни на один из моих ящиков на mail.ru и на rambler.ru письма не доходят.
     
  5. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    эти сервера принимают почту только с ИЗВЕСТНЫХ почтовых релеев. если бы ты правилно формировал заголовки писем, то получал бы отлупы от них с очень вразумительным текстом.

    повторю свой совет. почитай про заголовки писем ...

    намек: content-type не единственнй заголовок, который обрабатывает почтовый релей. в том числе там есть заголовок, который указывает на какой ящик отправлять отлупы.

    намек2: если ты пишешь From: mymail@server.ru, то это совсем не означает, что письмо уходит именно от этого адресата. 8) письмо уходит от MAIL FROM: адрес, выдаваемого почтовому релею в диалоге ... в чстном случае это From: , но из веб-скрипта это в 95% www@localhost, именно на него и приходят отлупы ...

    к примеру письма с этого форума уходят как:
    from=<www@gw.expi-web.spb.ru>,

    Код (Text):
    1. May  3 16:35:14 gw sm-mta[60469]: k43CZEvW060469: from=<www@gw.expi-web.spb.ru>, size=1574, class=0, nrcpts=1,
    2.  msgid=<132288db557dd2d139f5196d24c6e716@forum.php.ru>, proto=ESMTP, daemon=IPv4, relay=localhost.expi-web.spb.ru [127.0.0.1]
    хотя ты видишь в почтовом клиенте
    От: forum@php.ru

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

    ---

    поправка: Errors-To: mymail@server.ru
    читать тут: http://hell.org.ua/Docs/oreilly/other2/ ... 77086.html
     
  6. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Вот так выглядят теперь хедеры.
    Код (Text):
    1. $headers.="From: $from\r\n";
    2. $headers.="Cc: bauglir666@mail.ru, brain_dead@mail.ru, diman_s@rambler.ru\r\n";
    3. $headers.="Return-path: <$from>\r\n";
    4. $headers.="Content-Type: text/plain; charset=windows-1251;\r\n";
    5. $headers.="Errors-To: admin@leanaschool.com\r\n";
    6. $headers.="MIME-Version: 1.0\r\n";
    7. $headers.="Content-Transfer-Encoding: 8bit\r\n";
    Сообщений об ошибках не приходит. Кстати, оказывается на рамблер мне письма доходят. Это значит, что на mail.ru какая-то фигня. В чем может быть дело?
     
  7. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда

    mail.ru НЕ принимает почту от неизвестных релеев. писал же уже ...

    замени \r\n на \n
     
  8. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Попробовал поискать про релеи. Ничего толкового не нашел. Понял только, что это что-то типа фильтра для почты? Объясни пожалуйста, что мне нужно сделать. Или кинь ссылку.
     
  9. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry

    релей (relay) - это то, через кого ты отправляешь письмо. пока письмо идет до адресата оно может пройти несколько релев (узлов).

    mail.ru настроена так, что принимает почту только от проверенных узлов.

    http://www.yandex.ru/yandsearch?rpt=rad ... B%E9+relay
     
  10. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    А где это указывать через какие релеи посылать? Почему тогда если я посылаю почту через веб-интерфейс, она доходит, а когда с этого же ящика через скрипт, не доходит?
     
  11. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry
    самая рспространенная ошибка думать что ящик и отправка почты одно и то же ...

    ты же не думаешь, что mail.ru лежит на одном сервере? вот и получать почту ты можешь с одного серера, а отправлять через совем другие.

    в общем прежде чем искать ошибки нужно как минимум понимать что ты делаешь, а судя по твоим вопросам ты этого не понимаешь.

    попробуй отправить письмо из обычной терминальной консоли. тогда много станет ясно как и что отпрвляет.
     
  12. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Тоесть я так понял, что мне в скрипте нужно коннектится не к серверу mail.mydomain.com, а к какому-то известному релею, который не внесен в черный список?
     
  13. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry
    да нет. нужно свой релей сделать "известным" ... 8)
     
  14. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Наверное неожиданный вопрос :) А как это сделать? Поиск по яндесу ничего не дал. Я ведь не знаком с терминологией, поэтому искать тяжело. Даже теории не удалось найти.
     
  15. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry
    сначала добейся что б письма уходили куда-нить, а уж с этой проблемой разберемся
     
  16. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Ну вот они уходят вот так. Снизу вверх. Это было в заголовках письма, которое мне пришло на рамблер.

    Received: from [81.19.66.26] (HELO mx7.rambler.ru)
    by mail11.rambler.ru (CommuniGate Pro SMTP 4.2.10)
    with ESMTP id 45702487 for diman_s@rambler.ru; Wed, 03 May 2006 17:35:14 +0400

    Received-SPF: none (mx7.rambler.ru: 66.152.98.105 is neither permitted nor denied by domain of
    clust10-www05.powweb.com) client-ip=66.152.98.105;
    envelope-from=leanaschoolc@clust10-www05.powweb.com; helo=clust10-www05.powweb.com;

    Received: from clust10-www05.powweb.com (clust10-www05.powweb.com [66.152.98.105])
    by mx7.rambler.ru (Postfix) with ESMTP id A6C71238DAD
    for <diman_s@rambler.ru>; Wed, 3 May 2006 17:35:03 +0400 (MSD)
    (envelope-from leanaschoolc@clust10-www05.powweb.com)

    Received: by clust10-www05.powweb.com (Postfix, from userid 164383)
    id 1DF1A189DA1; Wed, 3 May 2006 06:06:57 -0700 (PDT)

    То есть этот clust10-www05.powweb.com это и есть релей, который надо сделать известным?
     
  17. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Ну так я правильно понял?
     
  18. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда

    скорей всго да. а покажи все заголовки письма?
     
  19. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Вот они:
    Return-Path: <leanaschoolc@clust10-www05.powweb.com>
    Received: from [81.19.66.26] (HELO mx7.rambler.ru)
    by mail11.rambler.ru (CommuniGate Pro SMTP 4.2.10)
    with ESMTP id 45702487 for diman_s@rambler.ru; Wed, 03 May 2006 17:35:14 +0400
    Received-SPF: none (mx7.rambler.ru: 66.152.98.105 is neither permitted nor denied by domain of
    clust10-www05.powweb.com) client-ip=66.152.98.105;
    envelope-from=leanaschoolc@clust10-www05.powweb.com; helo=clust10-www05.powweb.com;
    Received: from clust10-www05.powweb.com (clust10-www05.powweb.com [66.152.98.105])
    by mx7.rambler.ru (Postfix) with ESMTP id A6C71238DAD
    for <diman_s@rambler.ru>; Wed, 3 May 2006 17:35:03 +0400 (MSD)
    (envelope-from leanaschoolc@clust10-www05.powweb.com)
    Received: by clust10-www05.powweb.com (Postfix, from userid 164383)
    id 1DF1A189DA1; Wed, 3 May 2006 06:06:57 -0700 (PDT)
    To: find_job@bk.ru
    Subject: Test
    From: admin@leanaschool.com
    Cc: bauglir666@mail.ru, brain_dead@mail.ru, diman_s@rambler.ru
    Content-Type: text/plain; charset=windows-1251
    Errors-To: admin@leanaschool.com
    Message-Id: <20060503130657.1DF1A189DA1@clust10-www05.powweb.com>
    Date: Wed, 3 May 2006 06:06:57 -0700 (PDT)

    This is the text.
     
  20. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Ну так что?
    Я тут кстати письмо в службу поддержки mail.ru написал. Говорят ситуация исправлена, проверьте. Проверяю, хрен там! Да что же делать в конце концов!!!
     
  21. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry


    ну что можно сказать ... отправляй не imap_ а обычным классом. в общем надо тесты гонять ... если не в лом чиркни в приват логин/пароль и что надо послать в письме. я тесты прогоню.
     
  22. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    В смысле обычным классом? Я пытался и просто через mail() отправлять та же фигня. Через mail даже наверное лучше будет. Черт с ним с imap'ом.

    А логин/пароль в смысле от ящика, или от ftp на котором скрипты лежат?
     
  23. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry


    от ящика и через что ты отпрпавляешь. я от себя попробую.
     
  24. Dmitry

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

    С нами с:
    26 апр 2006
    Сообщения:
    17
    Симпатии:
    0
    Ну так что? Ты получил логин/пароль?
     
  25. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Dmitry
    да. проверить не успелю. завтра днем ... сорри .. запара ...