Перейти к публикации

Как сделать отправку писем в txt формате?


Рекомендованные сообщения

При рассылке писем с сайта зарегистрированным пользователям они отправляются в html формате. А как сделать так, чтобы они отправлялись в только текстовом формате кодировки win-1251? Понимаю, что при этом фичи WYSIWYG и BBcode работать не будут, но очень надо.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

В версии 5.5 заменил в файле engine/inc/newsletter.php в двух местах text/html на text/plain, но письма все-равно приходят в html формате. Как это исправить? Нужно, чтобы приходили в текстовом.

Ссылка на сообщение
Поделиться на других сайтах

Собственно - вопрос к Celsoft.

Только прошу понять меня правильно .

В качестве почтовика стоял Daemon 9.04 на отдельной машине

Почта с вёб сервера ходила отлично . В том числе - и самописные формы почтовых запросов / ответов.

Поставили Daemon 9.56. Почта , создаваемая скриптом DLE 5.5 не принимается сервером.

Пишет -

19:46:38: <-- DATA

Tue 2007-04-17 19:46:38: Creating temp file (SMTP): c:mdaemonqueuestempmd50000000606.tmp

Tue 2007-04-17 19:46:38: --> 354 Enter mail, end with .

Tue 2007-04-17 19:46:38: Message size: 734 bytes

Tue 2007-04-17 19:46:38: --> 554 Message does not conform to standards

Tue 2007-04-17 19:46:38: Соединение прервано

Tue 2007-04-17 19:46:38: SMTP сессия отменена (Байт принято/передано: 913/399)

Собственно и вопрос - соответствует ли формат создания письма для отправки с вёба путём дле всем канонам ,диктуемым для формата майл -сообщений.

Ибо - почта, отправляемая моими скриптами продолжает ходить .

В качестве предположения - новая версия почтовика стала более придирчиво рассматривать и анализировать содержимое и структуру письма.

Причём - почта,отправляемая скриптом неуходит ниоткуда - ни с рассылок, ни с регистрации , ни персонально пользователю.

Ссылка на сообщение
Поделиться на других сайтах

dataman,

стандартам соответствует, но не всем почтовым серверам нравится указание отправителя:

"Вася" <admin@domen.ru>

что соответствует стандартам

поэтому можно можно в файле engine/inc/mail.class.php заменить строчку

		$this->mail_headers  .= "From: \"".$this->site_name."\" <".$this->from.">\n";
на
		$this->mail_headers  .= "From: ".$this->from."\n";

Ссылка на сообщение
Поделиться на других сайтах

Из ~10000 отправленных писем ~8000 отбилось спам-фильтрами. Смысл рассылки отсутствует. Нужно как-то переделать отправление в html-формате на обычный текст :(

Ссылка на сообщение
Поделиться на других сайтах

Из ~10000 отправленных писем ~8000 отбилось спам-фильтрами

ну так писать нужно полезную информацию, а не рекламную типа "у нас много интересного" :) тут дело далеко не в том что HTML формат

Ссылка на сообщение
Поделиться на других сайтах

Из ~10000 отправленных писем ~8000 отбилось спам-фильтрами

ну так писать нужно полезную информацию, а не рекламную типа "у нас много интересного" :) тут дело далеко не в том что HTML формат

Так я и пишу про обновления на сайте со ссылками на статьи, не использую смайлики или картинки вообще. Рассылку-то я делаю для зарегистрированных пользователей и в конце рассылки указываю как им отписаться от нее, если они больше не хотят получать ее.

Ссылка на сообщение
Поделиться на других сайтах

Так я и пишу про обновления на сайте со ссылками на статьи

ну это же чистый спам, только не про виагру. Поэтому я всегда был против этих рассылок и двумя руками за RSS и рассылку использую только для важных сообщений.

Ссылка на сообщение
Поделиться на других сайтах

По моему тема начиналась не со слов: "Давайте обсудим, что такое спам..." Демагогия чистой воды.

К стати, было бы очень не плохо вывести поле checkbox'а "получать сообщения" с сайта на форму регистрации.

Изменено пользователем Danila
Ссылка на сообщение
Поделиться на других сайтах

Danila,

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

Ссылка на сообщение
Поделиться на других сайтах

celsoft,

но не всем почтовым серверам нравится указание отправителя:

"Вася" <admin@domen.ru>

К сожалению в данный момент немогу проверить Ваше предположение. Однако есть некие сомнения, ибо - у меня в сети у всех пользователей стоит вёб клиент от даймонда, а он так же и посылает - "Вася"<admin@domen.ru>. И всё , отчегото доходит .. Есть ли ещё какие нибудь предположения - о причине несоответствия формата письма ?

Ссылка на сообщение
Поделиться на других сайтах

Попробоавал замену . НЕХОДИТ .. Как и ожидалось . Где смотреть ещё . ?

код ошибки - тот же ...

Tue 2007-04-17 19:04:18: --> 554 Message does not conform to standards

Ссылка на сообщение
Поделиться на других сайтах

Уважаемый celsoft !

В третий раз сообщаю Вам о неработоспособном модуле отправки почты.

Почта отправляется только в том случае если в настройках сервера не указано требование соответствия заголовков и команд RFC

На возможные ошибки указывает и тот факт, что Ваш модуль обрабатывает НЕ ВСЕ ответы сервера.

Так , например, при возникновении на сервере ситуации с кодом 554 Message does not conform to standards (рассмотрим только её) скрипт вообщеничего не пишет пользователю (кроме загадочного слова ИНФОРМАЦИЯ) - что письмо недошло , есть ошибки и прочее. Когда же письмо всё таки отправляется и принимается сервером - скрипт гордо пишет

-Сообщение успешно отправлено

Ваше сообщение для ******* успешно отправлено. Вернуться на главную.

По этому, в вопросах - что же для меня важнее - поддержка майла с пользователями посредством функций скрипта , но со снижением устойчивости сервера, в виду отсутствия проверок на правильность отправки писем - ответ очевиден. Кривое - фтопку.

Цитируя одного автора , могу только сказать ..

Джентльмены ! Не уродуйте свой сервер, если ПРИЧИНА не у вас...

От себя добавлю. Хотя уже писал и ранее..

Неисполнение обработки критических(непредвиденных) ситуаций делает использование Вашего скрипта менее желаемым, нежели оно могло быть. Пожалуйста, уделите время решению данного (и не только его) вопроса.

Ссылка на сообщение
Поделиться на других сайтах

dataman,

возмите документацию от вашего почтового сервера, и прочитайте что означает ошибка с кодом 554. Без расшифровки вам никто не сможет оказать помощь.

скрипт вообщеничего не пишет пользователю (кроме загадочного слова ИНФОРМАЦИЯ)

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

Может также не стоит перекладывать все с больной головы на здоровую? на тысячах сайтах отправляется а у вас нет, может об этом стоит задуматся?

Яркий пример http://dle-news.ru/2007/04/22/obnovlenie_p...ra_skripta.html этот баг только на последней версии PHP 5.2.1 и ни на одной другой версии PHP его нет. Это что баг скрипта? нет это чистый баг последней версии PHP, но имея подробную информацию о данном баге я его обошел, переписав скрипт, сделав обходные маневры, хотя мог написать, что это баг PHP и ждите новой версии

Ссылка на сообщение
Поделиться на других сайтах

celsoft,

Каюсь. Во всём и сразу.

Во первых, что не сообщил, что у меня на серверк стоит

Версия PHP 4.4.2

А во вторых , что не додумался , что у когото может возникнуть проблеммы с пререводом фразы

554 Message does not conform to standards , опубликованной мною дважды ...

Если перевести на русский язык - это означает "Сообщение не соответствует стандартам".

Аналогичное получал и от форума IPB, не помню уже какой версии. Перешол на новый IPB - почта с форума стала ходить нормально . Но не отом я пишу. Не о форуме. А о возможности просто ознакомиться с

Network Working Group P. Resnick, Editor

Request for Comments: 2822 QUALCOMM Incorporated

Obsoletes: 822 April 2001

Category: Standards Track

Internet Message Format

Именно этот документ и описывает , какими должны быть команды, заголовки и всё, в письмо включаемое. Может, ну, чтото экзотическое Вы приминили исходя из желаний улучшить и без того замечательный скрипт . Ко хнает .. Кроме Вас ..

По поводу Вашего

Может также не стоит перекладывать все с больной головы на здоровую? на тысячах сайтах отправляется а у вас нет, может об этом стоит задуматся?
скромно подмечу, что Вы , по всей видимости конфигоф ихней почты не видели, о специфике настройки каждого из них тоже не догадываетесь .

И если у них (энтих тысячах серверов ) упор сделан в сторону УДОБСТВ а не в сторну НАДЁЖНОСТИ - то данная ветка форума не место для обсуждения этой проблеммы. И Вас слегка недопонимаю . То Вы, одержимы параноей, (в хорошем смысле слова ) делаете различные настройки безопасности для админ панели (что есть смещение в сторону безопасности работы) то советуете перенимать передовой опыт тысяч хостеров, у которых одна задача - привлеч максимум пользователей (смещение в сторону удобства.)

Мне , к примеру достаточно понимания одного - КАК ТОЛЬКО Я ПРЕКРАШАЮ ТРЕБОВАТЬ ОТ ВАШЕГО СКРИПТА СООТВЕТСТВИЯМ RFC - почта сразу начинает ходить .

Так что , может , эта , глянем всёже на досуге исходники ? Или смеха ради Даймонд поставте у себя локально , и попробуйте .. Или спросите , у кого даймонд стоит . И опция - SMTP сервер проверяет команды и заголовки на соответствия с RFC включена.

Ну , и в завершении...

Ошибаетесь, вы , утверждая

Цитата(dataman @ 24.04.2007, 03:42)

скрипт вообщеничего не пишет пользователю (кроме загадочного слова ИНФОРМАЦИЯ)

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

Всё вы проверяете .. Если это только Вы писали. Что становится странным ... Ну , бывает, что свой код забываеш ..

if ( $this->smtp_code != 235 )

.....

if ( $this->smtp_code != 250 )

.....

if ( $this->smtp_code == 334 )

.....

if ( $this->smtp_code != 250 )

.....

if ( $this->smtp_code != 221 )

И так далее. Другое дело , что НЕ ВСЕ КРИТИЧЕСКИЕ ОТВЕТЫ почтового сервера В mail.class.php описаны. Ну , так напишите, что , мол , ежели smtp_code чтото другое - то Неожиданная ошибка сервера.

Особенно забавно смотрятся

if ( $this->smtp_code != 250 )

			{

				$this->smtp_error();

				return;

			}



			if ( $this->smtp_code != 221 )

			{

				$this->smtp_error();

				return;

			}

В обоих случаях - что является аргументом функции smtp_error(); ? Какой ответ получит пользователь ?

Так сколько на самом деле ВАРИАНТОВ ОТВЕТА СКРИПТА ПОЛЬЗОВАТЕЛЮ о процессе отправки сообщения ????

Изменено пользователем dataman
Ссылка на сообщение
Поделиться на других сайтах

dataman,

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

По поводу стандартов - насколько я понимаю, в движке используется не указанный тобою стандарт RFC 2822, а группа стандартов RFC 2045-2049.

Ссылка на сообщение
Поделиться на других сайтах

А во вторых , что не додумался , что у когото может возникнуть проблеммы с пререводом фразы

554 Message does not conform to standards , опубликованной мною дважды ...

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

попробуйте исправить в формарировании заголовков

$this->mail_headers .= "MIME-Version: 1.0\n";

на

$this->mail_headers .= "MIME-Version: 1.0\r\n";

и т.д. там их несколько. т.е. \n заменить на \r\n

Ссылка на сообщение
Поделиться на других сайтах

celsoft,

Ваши рекомендации выполнил.

Замена произведена в 2 местах.

Но почта продолжает не ходить

Могу ли я отправить Вам содержание 2 писем - то , что генерирует Ваш скрипт и то , что ВСЕГДА доходит ? (генерация мдаймондом ). По понятным причинам публиковать здесь их нехочу . Однако замечу, что ПЕРЕКОДИРОВКУ ВАШ СКРИПТ Н Е Д Е Л А Е Т ...

То есть - Слово Здравствуйте. в Вашем варианте мы видим как

Здравствуйте.
А должны увидеть -
=C7=E4=F0=E0=E2=F1=F2=E2=F3=E9=F2=E5

Не здесь ли причина ?

Также , у Вас

Date: Sat, 28 Apr 2007 15:14:40 +1100 устанавливается в самом последнем заголовке, а у всех иных отправляемых писем - 4 -5 (хотя может это и не принципиально)

Ссылка на сообщение
Поделиться на других сайтах

Как уже раньше писал Вам в ПМ - облегчения новый класс непринёс.

Ладно . Вот содержимое письма , которое СФОРМИРОВАНО ДЛЕ и не принимается почтовым сервером при включеной опции Требовать .... соответствия RFC . С отключенной опцией почтового сервера "Требовать .... соответствия RFC" письмо сервером принимается

 

Return-path: <webmaster@***>

Authentication-Results: mailb.***

		smtp.mail=webmaster@***; auth=pass

Received: from mail.*** by ***

		(MDaemon PRO v9.5.6)

		with ESMTP id md50000003736.msg

		for <webmaster@***>; Sun, 29 Apr 2007 13:50:52 +1100

MIME-Version: 1.0

Content-type: text/plain; charset="windows-1251"

From: "Название моего сайта" <webmaster@***>

To: webmaster@***

Subject: Привед

X-Priority: 3

X-Mailer: DLE PHP

X-Unique-ID: 52d341bee20c174f667385a9fa073be5

X-Authenticated-Sender: webmaster@***

X-Spam-Processed: mailb.***, Sun, 29 Apr 2007 13:50:52 +1100

		(not processed: message from valid local sender)

X-MDRcpt-To: webmaster@***

X-Rcpt-To: webmaster@***

X-Return-Path: webmaster@***

X-Envelope-From: webmaster@***

X-MDaemon-Deliver-To: webmaster@***

Reply-To: webmaster@***

Message-ID: <MDAEMON-F200704291350.AA5046906md50000000133@***>

Date: Sun, 29 Apr 2007 13:50:52 +1100


Administrator,


Данное письмо вам отправил Administrator с сайта http://***/


------------------------------------------------

Текст сообщения

------------------------------------------------


Привед



------------------------------------------------

Помните, что администрация сайта не несет ответственности за содержание данного письма


С уважением,


Администрация http://***/
Письмо, принимаемое сервером как при включеной опции так и при отключенной.. Создано скриптом, НЕ ВХОДЯЩИМ в состав ДЛЕ
Return-path: <webmaster@***>

Received: from m24w by ***

		(MDaemon PRO v9.5.6)

		with ESMTP id md50000003740.msg

		for <webmaster@***>; Sun, 29 Apr 2007 14:40:32 +1100

Date: Sun, 29 Apr 2007 14:37:45 ё1000

Subject: тема - Другое

To: webmaster@***

Content-Type: text/plan; charset=windows-1251

From: Посетитель <>

Reply-To: Гость <>

X-Mailer: PHP/4.4.2

X-Spam-Processed: ***, Sun, 29 Apr 2007 14:40:32 +1100

		(not processed: message from valid local sender)

X-MDRcpt-To: webmaster@***

X-Rcpt-To: webmaster@***

X-Return-Path: webmaster@***

X-Envelope-From: webmaster@***

X-MDaemon-Deliver-To: webmaster@***

Message-ID: <MDAEMON-F200704291440.AA4030828md50000000013@***>


1. Отправлено c IP :192.168.0.12, 29 April  2007 : в 14:37:45

2. Данные об отправителе: 

	**************************

Собственно сам текст

Вызывает подозрение разница в

1 вариант

From: "***" <webmaster@***>

To: webmaster@***

Второй вариант

From: Посетитель <>

Reply-To: Гость <>

Изменено пользователем dataman
Ссылка на сообщение
Поделиться на других сайтах

From: Посетитель <>

Reply-To: Гость <>

Reply-To говорит о том на какой адрес посылать ответ по умолчанию если вы выберете "Ответить" этот параметр неявляется обязательным и если он отсутвует то ответ по умолчанию будет уходить на адрес из From

Ссылка на сообщение
Поделиться на других сайтах

celsoft...

Я имел ввиду не САМИ "Reply-To " и "From" теги, а вот именно энти "<>" символы.

Но беспокоиться больше ненадо .

Как и предполагалось, в проекте подвёл самый слабый фактор. Человеческий. Ктото , (скорей всего я) поставил в настройках скрипта метод отправки SMTP. Почта теперь ходит.

Посему - все критические замечания считаются необоснованными, приношу свои извинения. Каюсь, одним словом. :(

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...