За последние 24 часа нас посетили 23763 программиста и 1716 роботов. Сейчас ищут 1739 программистов ...

Требуется найти грабли / переписать ф-ю отправки HTML-письма

Тема в разделе "PHP Free-Lance", создана пользователем Диди, 20 мар 2010.

  1. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Добрый день, уважаемые гуру!

    Поскольку устал искать проблему сам решил обратиться за помощью к обществу. Помощь могу оплатить (WM или Ядом), но буду рад и бесплатному совету. ;)
    Ситуация: сто лет уже как юзаю некий скрипт для отправки почты в формате HTML (качать здесь http://www.novosel.ru/mail.rar). Скрипт использует упрощенную библиотеку MimeMail от Richard Heyes. Тестировал на многих почтовых программах - все выглядело хорошо. Недавно пользователи, читающие почту через веб-интерфейс mail.ru, стали жаловаться, что они не видят текст сообщения. Стал проверять - текст действительно отсутствует, если на аккаунте не отмечена галочка "Показывать HTML тексты в письме". Решив эту проблему на Mail.ru получаю, что в Outlook text/plain приходит в виде вложения в отдельном файле, что не хорошо. Кроме того, на Mail.ru картинки, включенные в письмо, не отображаются в тексте, а показываются как вложения. В Outlook и The Bat такой проблемы нет.

    Требуется решить эти проблемы с Mail.ru не создав новых в других почтовых клиентах (тестирую как минимум в Outlook 2007, Outlook Express, The Bat, Mail.ru, Gmail.com). Полагаю, что проблема ерундовая, но понять не могу. :oops:

    Предложения и/или решения пишите в личку или ICQ 9445145
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Это стандарт. Есть письмо с HTML, к нему должен прилагаться обычный текст. Как воспримет письмо почтовый клиент это дело почтового клиента и пользователя. Обычно HTML воспринимают, как дополнительное вложение, если пользователь не указал обратного (разрешил показывать письма в формате HTML).

    А вы хотите заставить пользователя видеть HTML в письме даже если пользователь не хочет читать письма в формате HTML? Не получится.
     
  3. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Возьмите из Zend Framework компонент Zend Mail и генерируйте письмо с его помощью - всё работает на ура. А так как он может работать как и просто библиотека, то решается подключение его парой include.
     
  4. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Батенька, стандартом для таких случаев предусматривается отдельная секция HTML, отдельная text/plain в письме. Речь как раз о том, что секция text/plain в письме есть, а Mail.ru ее не отображает.
     
  5. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Да я собственно и использовал стандартную библиотеку, просто другую. Попробовал сегодня еще несколько - то понос, то золотуха. В одной появляются проблемы с кодировками, в другой те же проблемы с инклюдами. Я бы не писал, если проблему можно было бы решить так просто.

    Все равно, спасибо за совет. Попробую ещё и Zend Mail. :)
    Но вопрос/предложение ещё актуально!
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Но при этом письмо строго по стандарту?

    В таком случае надо писать в support mail.ru
     
  7. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    А кто-нибудь может сказать строго оно по стандарту, или нет? :)
    Насколько я понимаю, стандартов здесь множество. И это не одна страничка на ненашем языке. Разбираться просто нет времени. :(
    Факт в том, что письмо, отправленное из Outlook на Mail.ru, читается нормально и в HTML-представлении и в plain/text. Т.е. задача по идее решается и без support mail.ru.
     
  8. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Диди, про HTML я чё-то на автомате. Но. Но, ироничный батенька, посмотрите содержание письма сформированного вами и Outlook и сравните. Узнаете почему Outlook верно проставляет заголовки, а вы нет. Точнее, где вы накосячили. ;)
     
  9. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    lexa, если попробуете практически осуществить то, что предлагаете, то поймете, почему я прошу помощь клуба и готов за это заплатить. Сравнивать просто два письма как файлы сложно, т.к. они:
    1. Частью закодированы.
    2. Могут иметь разный порядок и набор полей, что может иметь, а может и не иметь принципиального значения для решения вопроса.
    Поэтому правильно сравнивать сообщения, отпарсенные через, например imap_fetchstructure, imap_fetchheader а для этого нужно писать, хоть и не сложный но коннектор-парсер. А что делать дальше с найденными различиями?

    Собственно, сравнением файлов я тоже занимался, и на уровне полей какие-то различия видны. А дальше все равно нужно разбираться с тем, почему этот стандартный класс делает то, что он делает, и как это нужно изменить.
    Просто я убью на это слишком много времени, потому что с предметом (MIME) не знаком абсолютно. Может быть кто-то знает предмет и согласится помочь?
     
  10. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Не могу понять, кто же из нас косячит. :) Просто открыть файлы блокнотом и сравнить заголовки. Если содержание и закодировано, то а) это всего лишь base64, и б) заголовки всё-равно не кодируются.

    Просто открыть два файла и пробежать глазами: может где-то перенос строки не выставлен, может между заголовками и текстом нет двойного переноса строки, может разделитель, если есть, для какого-то куска неверно указан.

    Как-то вот, да.
     
  11. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Вот потому что у них было время разбираться у них и отправляется, а вы занимаетесь демагогией ну или все, потому что ничего там сложного нет, один раз разберешься и хватит на всю жизнь
     
  12. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Костян
    Вообще-то рекомендую посмотреть на раздел.
    Тебе должно быть абсолютно фиолетово по каким причинам ему нужно это сделать, поскольку ничего неадекватного в запросе нет.
     
  13. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Simpliest
    да я понял, он же сам начал сюсюкаться ;)
     
  14. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Да я ж не говорю, что не могу решить проблему. Могу, наверное. :? Просто времени, которое уже потрачено, и которое скорее всего придется потратить жалко. Много других вопросов.
    Именно поэтому, как справедливо заметил уважаемый Simpliest, вопрос в разделе Free-lance. Кто уже разобрался и может платно помочь - обращайтесь.
     
  15. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Диди
    да я понял, понял, понял... еще до того как выше написал