1 заметка с тегом

email РСС

22 июля 2008, 21:30

mail() в php, проверка в JavaScript

// проверим мейл на настоящесть, приметивненько ;) но быстро
$normal = eregi("^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$",$mail) ? 1 : 0;
if ($normal)	{
	$message = "";
	// Если хотим что бы письмо было фложеным, раскоментируем 4 строчки ниже :D
	//$mime_boundary = "----ssila.na.sayt/naprimer----".md5(time() ); // Случайная строка для граничного маркера
	//$headers .= "MIME-Version: 1.0\n"; // Версия майм (вложения)
	//$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n"; // Тип вложения
	//$message .= "--$mime_boundary\n"; // маркируем 
	
	$message .= "Content-Type: text/html; charset=UTF-8\n"; // Зададим кодировочку
	$message .= "Content-Transfer-Encoding: 8bit\n\n"; // это для УТФ ;)
	$headers .= "From: Ot kogo <pismo@net.da>\r\n"; // Укажем от кого письмо
	$headers .= "Bcc: pismo2@net.da\n"; // Карбон-копи, тобишь кому ещё втайне это письмо придёт
	$headers .= "Reply-To: otvetka@pismo.net\r\n"; // Куда пишемь ответку
	$headers .= "Return-Path: otvetka@pismo.net\r\n"; 
	$headers .= "mailed-by: pismo.net\r\n"; // И скажем с какого сервера пришло письмо ;)
	// Вот уже и есть необходимый минимум, можно отправлять ;)
	@mail($mail,"subject","body",$headers);
	
	// ЗЫ: Только нужно учесть что страница может быть в другой кодировке, 
	// и данные придут кривые, а у нас тут УТФ ;)
	// ЗЗЫ: iconv в помощь
	
}
А вот таким JS мы легко проверим на правильность эмейл ;) Но лучше страховатся на стороне сервера ;) Как описано выше ^
function validate(formz,mailz) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = formz.elements[mailz].value;
   if(reg.test(address) == false) {
      alert('Не у-га-да-л :) E-mail то неправельный');
      return false;
   }
}
А вот и простая формочка ;)
<form action="/" method="post" onsubmit="javascript:return validate(this,'mailz');">
	<input type="text" name="mailz" value="e-mail"/>
	<input type="submit" name="OK" value="OK"/>
</form>