Следующая статья: Как отправить письмо / почту / email в PHP в разных кодировках (windows-1251 / cp1251 / koi-8 / utf8)?
Отправка писем при помощи SMTP авторизации потому как это теперь основной режим отправки писем. Если авторизации нет, то просто прочтите help по команде mail в PHP
// _____________________________________________________________________________
function sdf_email_get_data($_smtp_conn)
// Выполняет: отправка данных по smtp протоколу
{
$r='';
while($str=fgets($_smtp_conn,515))
{ $r.=$str;
if(substr($str,3,1)==' ') { break; }
}// /while
return $r;
}// /sdf_email_get_data
// _____________________________________________________________________________
function sdf_email_command($_handle,$_command)
{
fputs($_handle,$_command."\n");
$r='<strong>'.$_command.'</strong> - '.nl2br(sdf_email_get_data($_handle));
return $r;
}// /sdf_email_command
// _____________________________________________________________________________
function sdf_email($_mail,$_title='Вам письмо',$_text='Текст не указан')
// Выполняет: отправка письма
// _email - кому
// _title - заголовок письма
// _text - текст письма
{
if ($_mail!='')// если email указан, то отправляем письмо
{ $config=sdf_project_config();// загрузка настроек проекта
/*
Функция: sdf_project_config возвращает ниже приведенные данныые из любого необходимого источника
можно их просто прописать как массив, например: $config['smtp_server']='smtp.mail.ru';
$smtp_server='smtp.mail.ru';
$port=25;
$mydomain='myserver.com';
$username='user';
$password='password';
$sender='me@myserver.com';
$recipient='joe@company.com';
$subject='test';
$content='test';
*/
// Initiate connection with the SMTP server
$h=fsockopen($config['email_server_smtp'],$config['email_server_smtp_port']);// соединяемся с SMTP сервером
// $data=sdf_email_get_data($h);
$s='';
$s.=sdf_email_command($h,'HELO '.$config['email_server_smtp']);
$s.=sdf_email_command($h,'AUTH LOGIN');
$s.=sdf_email_command($h,base64_encode($config['email_login']));
$s.=sdf_email_command($h,base64_encode($config['email_password']));
$s.=sdf_email_command($h,'MAIL FROM:<'.$config['email_login'].'>');
$s.=sdf_email_command($h,'RCPT TO:<'.$_mail.'>');
$s.=sdf_email_command($h,'DATA');
$head='';
$head.='Date: '.date('D, j M Y G:i:s').' +0700'."\n";
$head.='From:'.$config['email_login']."\n";
$head.='To: '.$_mail."\n";
$head.='Content-type: text/plain; charset="utf-8"'."\n";// поддержка кодировки UTF8
$head.='X-Mailer: SD PHP'."\n";
$head.='Subject: '.$_title."\n\n";
$head.=$_text."\n.\n";
$s.=sd_email_command($h,$head);
$s.=sd_email_command($h,'QUIT');
}
return $s;
}// /sdf_email
Хотелось бы отметить, что "\n" обязательны в таком порядке :(