Заголовки письма не соответствуют RFC 822 ?

sunyang

Мастер
Регистрация
25 Апр 2009
Сообщения
440
Реакции
30
Есть форма, которая заполняется и отправляется по мылу. Письмо приходит, но содержимого $output не приходит, а выдается сообщение: ВНИМАНИЕ!
Заголовки письма не соответствуют RFC 822.

Где здесь косяк?

PHP:
$headers .= "Content-type: text/html; charset=utf-8\n";
неправильно указан?

PHP:
<?php
$to = $mail;
function _t($name = ''){
	if($_POST){
		if(isset($_POST[$name])) {
			return $_POST[$name];
		}
	}
	return '';
}

function get_form(){
	$output = '<div style="display:none">
	<div class="cont-content">
		<h1 class="cont-title">Заявка природопользователя</h1>
		<div class="cont-loading" style="display:none"></div>
		<div class="cont-message"></div>';
	if(!isset($_POST['email'])){
		$output .= '<form action="#" style="display:none">';
	}
	$output .= '
			<STYLE TYPE="text/css">
			<!--
@page { size: 21cm 29.7cm; margin-right: 1.3cm; margin-top: 1cm; margin-bottom: 0.73cm }
P { direction: ltr; color: #000000; widows: 0; orphans: 0 }
P.western { font-family: "Times New Roman", serif; font-size: 12pt; so-language: ru-RU; font-weight: bold;margin:0 }
P.cjk { font-family: "Times New Roman", serif; font-size: 12pt; font-weight: bold }
P.ctl { font-family: "Times New Roman", serif; font-size: 10pt; so-language: ar-SA }
H3 { direction: ltr; color: #000000; text-align: justify; widows: 0; orphans: 0; page-break-after: avoid }
H3.western { font-family: "Times New Roman", serif; font-size: 10pt; so-language: ru-RU; font-weight: bold }
H3.cjk { font-family: "Times New Roman", serif; font-size: 10pt; font-weight: bold }
H3.ctl { font-family: "Times New Roman", serif; font-size: 10pt; so-language: ar-SA }
A:link { color: #0000ff; text-decoration: underline }
A:visited { color: #800080; text-decoration: underline }
.ci {
	background-color:#F3F3F3;
	padding:0 2px;
	height:14px;
	border:0 none
}
.i10{width:10px}
.i20{width:20px}
.i30{width:30px}
.i40{width:40px}
.i50{width:80px}
.i60{width:60px}
.i70{width:70px}
.i80{width:80px}
.i90{width:90px}
.i100{width:100px}
.i110{width:110px}
.i120{width:120px}
.i130{width:130px}
.i140{width:140px}
.i150{width:150px}
.i160{width:160px}
.i170{width:170px}
.i180{width:180px}
.i190{width:190px}
.i200{width:200px}
.i210{width:210px}
.i250{width:250px}
.i350{width:350px}
.i550{width:550px}
.i750{width:750px}

.hd2{
	height:35px
}
.iu{
	border-bottom:1px solid black;
	background-color:#FFF !important
}
			-->
			</STYLE>
			<P CLASS="western" STYLE="font-weight: normal"><FONT SIZE=2><B>ЗАЯВКА  РЕГ № </B>
			    <input type="text" class="ci iu i80" value="'._t('i1').'" tabindex="1" name="i1" /></FONT>
			 <span class="right">E-mail: <input type="text" class="iu i150 ci" name="email" value="'._t('email').'" tabindex="2" /></span>
			 <input type="hidden" value="send" name="action" />
			</P>
			<P CLASS="western" ALIGN=CENTER><BR>
			</P>
			<P CLASS="western" STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>Прошу
			оказать услугу  за 
            <input type="text" class="ci iu i20" value="'._t('i2').'" tabindex="3" name="i2" /> кв. 20<input type="text" class="ci iu i20" value="'._t('i3').'" tabindex="4" name="i3" />г.</B></FONT></FONT><BR>
			</P>
			<P ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><I><SPAN STYLE="font-weight: normal">Заявка
			 заполняется в двух экземплярах. К заявке
			прикладываются договоры на вывоз мусора
			с приложением копий актов выполненных
			работ по сдаче отходов или документы
			от арендодателя о доле вывозимого
			мусора; договоры аренды; свидетельства
			на право собственности.</SPAN></I></FONT></P>
			<P STYLE="font-weight: normal; line-height: 100%">&nbsp;</P>
			<P STYLE="font-weight: normal; line-height: 100%"><FONT SIZE=2><B><input type="text" class="ci iu i750" value="'._t('i42').'" tabindex="43" name="i42" /></B></FONT></P>
			<P CLASS="western" ALIGN=CENTER STYLE="font-weight: normal"><FONT SIZE=2><B>(название
			предприятия)</B></FONT></P>
			<OL>
				<LI><P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2><B>Виды
				деятельности</B><input type="text" class="ci iu i550" value="'._t('i43').'" tabindex="44" name="i43" /></FONT></P>
				<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><B>Проект
				лимитов на размещение отходов: да, нет
				 №<input type="text" class="ci iu i120" value="'._t('i205').'" tabindex="45" name="i205" /> От <input type="text" class="ci iu i120" value="'._t('i44').'" tabindex="46" name="i44" /></B></FONT></P>
			</OL>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal">       
			<FONT SIZE=2>Приложить копию перечня количества
			отходов, справку об образовании и
			движении отходов, данные по плотности
			отходов в соответствии с проектом.</FONT></P>
			<OL START=3>
				<LI><P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><B>Разрешение
				на выброс, сброс: да, нет (копию приложить)
				№<input type="text" class="ci iu i120" value="'._t('i45').'" tabindex="47" name="i45" /> От <input type="text" class="ci iu i120" value="'._t('i46').'" tabindex="48" name="i46" /></B></FONT></P>
				<LI><P CLASS="western" STYLE="font-weight: normal"><FONT SIZE=2><B>Для
				АЗС, автомоек, платных  автостоянок –
				договор и акты выполненных работ на
				оказание услуг по очистке нефтесодержащих
				стоков: да, нет (копии приложить) </B></FONT>
				</P>
			</OL>
			<P ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt">	</FONT></P>
			<P ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2>Передвижные
			источники (количество): легковые<input type="text" class="ci i100 iu" value="'._t('i183').'" tabindex="187" name="i183" />шт</FONT></FONT></P>
			<P ALIGN=CENTER>                                                     
			                                   <FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2>грузовые
			и прочие<input type="text" class="ci i100 iu" value="'._t('i184').'" tabindex="188" name="i184" />шт</FONT></FONT></P>
			<P ALIGN=LEFT STYLE="font-weight: normal"><BR>
			</P>
			<P ALIGN=LEFT><FONT SIZE=2 STYLE="font-size: 11pt"><FONT SIZE=2><SPAN STYLE="font-weight: normal">Документы
			подтверждающие мойку автомобилей (да,
			нет, копии приложить)<input type="text" class="ci i250 iu" value="'._t('i185').'" tabindex="189" name="i185" /></SPAN></FONT></FONT></P>
			<P ALIGN=CENTER><BR>
			</P>
			<TABLE WIDTH=711 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7 CELLSPACING=0>
				<COL WIDTH=143>
				<COL WIDTH=96>
				<COL WIDTH=96>
				<COL WIDTH=96>
				<COL WIDTH=96>
				<COL WIDTH=96>
				<TR VALIGN=TOP>
					<TD WIDTH=143>
						<P CLASS="western" ALIGN=CENTER><BR>
						</P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">Вид
						топлива</FONT></P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER STYLE="margin-left: -0.19cm; margin-right: -0.27cm">
						<FONT SIZE=2 STYLE="font-size: 9pt">Бензин </FONT>
						</P>
						<P CLASS="western" ALIGN=CENTER STYLE="margin-left: -0.19cm; margin-right: -0.27cm">
						<FONT SIZE=2 STYLE="font-size: 9pt">неэтилированный</FONT></P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">л
						</FONT>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">Дизельное
						</FONT>
						</P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">топливо</FONT></P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">л
						</FONT>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER> <FONT SIZE=2 STYLE="font-size: 9pt">Керосин
						</FONT>
						</P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">л</FONT></P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">Сжатый
						</FONT>
						</P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">природный
						газ</FONT></P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">тыс.
						м</FONT><SUP><FONT SIZE=2 STYLE="font-size: 9pt">3</FONT></SUP></P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">Сжиженный
						газ</FONT></P>
						<P CLASS="western" ALIGN=CENTER><FONT SIZE=2 STYLE="font-size: 9pt">л</FONT></P>
					</TD>
				</TR>
				<TR VALIGN=TOP>
					<TD WIDTH=143>
						<P CLASS="western"><FONT SIZE=2 STYLE="font-size: 9pt">Израсходовано
						</FONT><FONT SIZE=2 STYLE="font-size: 9pt">в квартал</FONT></P>
						<P CLASS="western"><BR><input type="text" class="ci i150" value="'._t('i186').'" tabindex="190" name="i186" />
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=JUSTIFY><input type="text" class="ci i100 hd2" value="'._t('i187').'" tabindex="191" name="i187" /><BR>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=CENTER><input type="text" class="ci i100 hd2" value="'._t('i188').'" tabindex="192" name="i188" /><BR>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=JUSTIFY><input type="text" class="ci i100 hd2" value="'._t('i189').'" tabindex="193" name="i189" /><BR>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=JUSTIFY><input type="text" class="ci i100 hd2" value="'._t('i190').'" tabindex="194" name="i190" /><BR>
						</P>
					</TD>
					<TD WIDTH=96>
						<P CLASS="western" ALIGN=JUSTIFY><input type="text" class="ci i100 hd2" value="'._t('i191').'" tabindex="195" name="i191" /><BR>
						</P>
					</TD>
				</TR>
			</TABLE>
			<P CLASS="western" ALIGN=JUSTIFY><BR>
			</P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt">Юридический
			адрес
			природопользователя<input type="text" class="ci i250 iu" value="'._t('i192').'" tabindex="196" name="i192" /></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><input type="text" class="ci i550 iu" value="'._t('i193').'" tabindex="197" name="i193" /></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt">Фактический
			адрес
			природопользователя<input type="text" class="ci i250 iu" value="'._t('i194').'" tabindex="198" name="i194" /></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><input type="text" class="ci i250 iu" value="'._t('i195').'" tabindex="199" name="i195" /></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN LANG="en-US">e-mail</SPAN></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><input type="text" class="ci i100 iu" value="'._t('i196').'" tabindex="200" name="i196" /></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN LANG="en-US"><input type="text" class="ci i30 iu" value="'._t('i197').'" tabindex="201" name="i197" /></SPAN></FONT><FONT SIZE=2 STYLE="font-size: 11pt">
			 Телефон<input type="text" class="ci i100 iu" value="'._t('i198').'" name="i198" /></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN LANG="en-US"><input type="text" class="ci i20 iu" value="'._t('i199').'" tabindex="203" name="i199" /></SPAN></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><BR>
			</P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>Руководитель<input type="text" class="ci i350 iu" value="'._t('i200').'" tabindex="204" name="i200" />
			</B></FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>		</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(Ф
			И О указать полностью)</FONT><FONT SIZE=2 STYLE="font-size: 11pt"><B>						</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">
			  		 (подпись)</FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><BR>
			</P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><B>Руководитель
			</B></FONT>
			</P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>обособленного
			подразделения<input type="text" class="ci i350 iu" value="'._t('i201').'" tabindex="205" name="i201" /></B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(указать
			полностью Ф И О, реквизиты доверенности)</FONT><FONT SIZE=2 STYLE="font-size: 11pt"><B>			</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">
			(подпись)</FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY> <FONT SIZE=2 STYLE="font-size: 11pt"><B>				</B></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>Гл.
			бухгалтер<input type="text" class="ci i350 iu" value="'._t('i202').'" tabindex="206" name="i202" /></B></FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>		</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(Ф
			И О указать полностью)</FONT><FONT SIZE=2 STYLE="font-size: 11pt"><B>						
			   		</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(подпись)</FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><FONT SIZE=2 STYLE="font-size: 11pt"><B>Бухгалтер
			</B></FONT>
			</P>
			<P CLASS="western" ALIGN=JUSTIFY STYLE="font-weight: normal"><FONT SIZE=2><FONT SIZE=2 STYLE="font-size: 11pt"><B>обособленного
			подразделения<input type="text" class="ci i250 iu" value="'._t('i203').'" tabindex="207" name="i203" /></B></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN LANG="en-US"><B>_</B></SPAN></FONT><FONT SIZE=2 STYLE="font-size: 11pt"><B>				</B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(указать
			полностью Ф И О, реквизиты
			доверенности)</FONT><FONT SIZE=2 STYLE="font-size: 11pt"><B></B></FONT><FONT SIZE=1 STYLE="font-size: 8pt">(подпись)</FONT></FONT></P>
			<P CLASS="western" ALIGN=JUSTIFY><BR>
			</P>
			<H3 CLASS="western"></H3>
			<H3 CLASS="western">М.П.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN LANG="en-US">    
			</SPAN>Дата<input type="text" class="ci i100 iu" value="'._t('i204').'" tabindex="208" name="i204" /></H3>
			<br/>

			<label>&nbsp;</label>
	';
	
	if(!isset($_POST['email'])) {
		$output .= '</form>';
	}

	$output .= '</div>
	<div class="cont-buttons">
		<button type="submit" class="cont-send cont-button" tabindex="209">Отправить</button>
		<button type="submit" class="cont-cancel cont-button simplemodal-close" tabindex="210">Отмена</button>
		<a class="right" href="/zayavka_FGU.doc" title="Скачать заявку в формате DOC"">Скачать заявку</a>
	</div>
</div>';
	
	return $output;
}

$subject = "Заявка природопользователя с сайта " . $_SERVER['SERVER_NAME'];

// Include extra form fields and/or submitter data?
// false = do not include
// Process
$action = isset($_POST["action"]) ? $_POST["action"] : "";
if (empty($action)) {
	// Send back the contact form HTML
	$output = get_form();

	echo $output;
}
else if ($action == "send") {
	// Send the email
	$email = isset($_POST["email"]) ? $_POST["email"] : "";
	$message = $output = get_form();
	$to = $_POST["email"];
	// make sure the token matches
	smcf_send($name, $email, $subject, $message, $to, $tel);
	echo "Ваше сообщение благополучно отправлено.";
}

function smcf_token($s) {
	return md5("smcf-" . $s . date("WY"));
}

// Validate and send email
function smcf_send($name, $email, $subject, $message, $to, $tel) {
	// Filter and validate fields
	$email = smcf_filter($email);
	//$message = smcf_filter($message);
	if (!smcf_validate_email($email)) {
		$subject .= " - неверный email $email";
		$email = $to;
	}
	
	$body = '<b>Заявка природопользователя:</b><br />';

	if($message) {
		$body .= $message;
	}

	$body = wordwrap($body, 70);

	// Build header
	$headers = "From: admin@email.ru\n";

	// UTF-8
	/*if (function_exists('mb_encode_mimeheader')) {
		$subject = mb_encode_mimeheader($subject, "UTF-8", "B", "\n");
	} else {
		// you need to enable mb_encode_mimeheader or risk 
		// getting emails that are not UTF-8 encoded
	}
	$headers .= "MIME-Version: 1.0\n";*/
	$headers .= "Content-type: text/html; charset=utf-8\n";
	/*$headers .= "Content-Transfer-Encoding: quoted-printable\n";*/
$to = $_POST["email"];
	@mail($to, $subject, $body, $headers) or 
		die("К сожалению, не удалось отправить письмо из-за проблем с сервером.");
}

// Remove any un-safe values to prevent email injection
function smcf_filter($value) {
	$pattern = array("/\n/","/\r/","/content-type:/i","/to:/i", "/from:/i", "/cc:/i");
	$value = preg_replace($pattern, "", $value);
	return $value;
}

function smcf_validate_email($email) {
	$at = strrpos($email, "@");

	if ($at && ($at < 1 || ($at + 1) == strlen($email)))
		return false;

	if (preg_match("/(\.{2,})/", $email))
		return false;

	$local = substr($email, 0, $at);
	$domain = substr($email, $at + 1);

	$locLen = strlen($local);
	$domLen = strlen($domain);
	if ($locLen < 1 || $locLen > 64 || $domLen < 4 || $domLen > 255)
		return false;

	if (preg_match("/(^\.|\.$)/", $local) || preg_match("/(^\.|\.$)/", $domain))
		return false;

	if (!preg_match('/^"(.+)"$/', $local)) {
		if (!preg_match('/^[-a-zA-Z0-9!#$%*\/?|^{}`~&\'+=_\.]*$/', $local))
			return false;
	}

	if (!preg_match("/^[-a-zA-Z0-9\.]*$/", $domain) || !strpos($domain, "."))
		return false;	

	return true;
}

exit;

?>
 
Была такая проблема. Перекодировать заголовок в base64 надо.
Выручила эта инструкция
Смотри в ней коментарии. Обрати особое внимание на этот
 
добавил в условие отправки:

PHP:
function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') { 
   $header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
   mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header); 
 }
	
	//smcf_send($name, $email, $subject, $message, $to, $tel);
	
mail_utf8($to, $subject, $message, $header);
	
echo "Ваше сообщение благополучно отправлено.";

Теперь сообщение о неверных заголовках не пишется, но сообщение приходит в виде html кода...


сообщение:

<div style="display:none">
<div class="cont-content">
<h1 class="cont-title">Заявка природопользователя</h1>
<div class="cont-loading" style="display:none"></div>
<div class="cont-message"></div>
<form action="#" style="display:none">

... и т.д.

как это подправить?)

---------- Post added at 13:17 ---------- Previous post was at 12:13 ----------

тип не правильно указал.
нужно было:
Content-type: text/html

Спасибо.
 
Назад
Сверху