Добрый день. Надо наладить рассылку пользователям. Использовал mail(). Код (Text): $header = 'From: name@site.com'; ... mail ($mail, $subject, $message, $header); На Mail.ru и Yandex.ru приходит ОК, на Gmail не приходит. После чтения интернетов и экспериментов, выяснилось, что на Gmail приходит, если добавить в конец заголовка /n Код (Text): $header = 'From: name@site.com\n'; Но в таком виде письмо на Gmail падает в спам, потому что (внимание) обратный адрес отбражается с дописанной в конце "n". Т.е. как Код (Text): name@site.comn . Gmail понятно такого доменного имени не знает, видимо решает, что это недобросовестный исполнитель и помечает спамом. (Повторюсь, если \n не ставить - то на Гмейл не приходит вообще) Думал, как избавиться от n на конце адреса. Сделал "длинный хедер": Код (Text): $header = 'From: name@site.com\n'; $header .= 'Content-Type: text/html; charset=UTF-8\n'; Подумал, что так может "n" после адреса "проскочит". В такой конфигурации письмо все равно отправилось в спам, а в поле обратного адреса появилось такое: от: text/html@vps-1026622-6031.host4g.ru ответить: text/html@vps-1026622-6031.host4g.ru, charset=UTF-8n@vps-1026622-6031.host4g.ru vps-1026622-6031.host4g.ru - это мой хостинг. Я попытался почитать в интернете про то, как решать проблемы с отправкой писем из php скриптов, сломал голову (целая наука о заголовках, каких-то почтовых серверах и специальных библиотеках) и прошу вашего совета. Есть ли сценарий, как решить эту задачу относительно простыми и надежными методами? Нужно: - просто отправлять (получать ответы, принимать почту не надо) - письма без атачей, картинок и пр.: просто html - количество писем в рассылке - думаю может дойти до 10 - 20 тыс. (вряд ли больше) - регулярность рассылок: 2 раза в день, в заданное время. Буду признателен советам, и если не прям коду, то хотя бы направлению - куда рыть. PS А то уже стал смотреть, может сгрузить эту задачу на Юнисендер, отправляя им адреса в адресный лист по АПИ. Но там нельзя в автореспондерах настроить нужную мне логику (2 раза в день в заданное время) Спасибо!
Строка в одинарных кавычках обрабатывается не так как строка в двойных кавычках. Ты должен использовать двойные чтобы вставить символ перевода строки \n. http://ru2.php.net/manual/ru/language.types.string
при использовании ординарных кавычек вставленные в них спец символы, такие например как \n не обрабатываются, так же вставленные переменные в текст не обрабатываются, все это делается только в двойных кавычках. Код (PHP): $name = 'Vova'; echo 'hello \n $name'; // оно и напечатает hello \n $name echo "hello \n $name"; // а тут hello и с новой строчки Vova
Ух! Про то, что в одинарных кавычках не обрабатываются переменные, а выводятся, как текст - знал. А вот про спецсимволы - нет. Cпасибо!