|
|
|
|
|
для: Trianon
(23.08.2006 в 14:31)
| | Да, я тоже так думаю... А у меня вот есть с этим проблемы, поэтому я и прошу помочь... | |
|
|
|
|
|
|
|
для: 999
(23.08.2006 в 14:21)
| | >Trianon, действительно, откуда??? Это лучше у Cheops'a спросить...
Я так думаю, что у cheops'а нет проблем ни с отправкой почты, ни с доставкой... | |
|
|
|
|
|
|
|
для: Trianon
(23.08.2006 в 13:40)
| | Trianon, действительно, откуда??? Это лучше у Cheops'a спросить... Но тем не менее исправил и вот что получилось:
<?php
if(empty($_POST['mail_to'])) exit("Введите адрес получателя");
// проверяем правильности заполнения с помощью регулярного выражения
// if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com");
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
mail($_POST['mail_to'], $_POST['mail_subject'], $_POST['mail_msg']);
// Отправляем почтовое сообщение
if(empty($picture)){
if(!mail($_POST['mail_to'], $_POST['mail_subject'], $msg)){
echo "К сожалению, письмо не отправлено";
exit();
}else{
echo "Письмо успешно отправлено!";
exit();
}
}else send_mail($_POST['mail_to'], $_POST['mail_subject'], $msg, $picture);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp){
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$path = substr($path,12);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "";
$message_part .= "Content-Type: application/octet-stream";
$message_part .= "; file_name = \"$path\"\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= "--$boundary\n".$message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
?>
|
В поле "Кому" указываю адрес Admin@localhost
Пользователь Admin в Kerio зарегистрирован.
Пишет что письмо успешно отправлено. В связи с этим такой вопрос: А где мне посмотреть отправленной письмо, т.е. как получить почту с помошью Kerio??? | |
|
|
|
|
|
|
|
для: 999
(23.08.2006 в 13:17)
| | откуда берется $users['email'] ? | |
|
|
|
|
|
|
|
для: 999
(23.08.2006 в 13:17)
| | а если указать stmp вашего провайдера (яндекс, майл и т.п.)? | |
|
|
|
|
|
|
|
для: 999
(20.08.2006 в 19:52)
| | up | |
|
|
|
|
|
|
|
для: 123php
(20.08.2006 в 16:37)
| | Народ, объясните, пожалуйста...
В общем установил я Kerio MailServer. Создал 2 файла, которые описаны в 1 сообщении. А он всеравно не работает... Ошибку выдает
Warning: mail() [function.mail]: SMTP server response: 503 5.5.1 Need RCPT (recipient) in D:\simple_mail.php on line 17
Я первый раз в этой области, так что пока не опытен. Пожайлуста, объясните поподробнее, что мне съделать надо, чтобы письма отправлялись с файлами??? | |
|
|
|
|
|
|
|
для: CrazyAngel
(20.08.2006 в 15:25)
| | чей smtp вы указываете? | |
|
|
|
|
|
|
|
для: 999
(20.08.2006 в 15:14)
| | У вас не установлен почтовый сервер | |
|
|
|
|
|
|
| Народ, вот нашел тему на форуме, в которой написан код простой отправки почты.
(Cheops написал)
Пусть имеется HTML форма index.php
<HTML>
<HEAD>
<TITLE>Отправка сообщения</TITLE>
</HEAD>
<BODY>
<H3> <center><font color=#1E90FF> Отправка сообщения </font></H3>
<center>
<table width=1 border=0>
<form action=simple_mail.php method=post>
<tr><td width=50%>To:</td><td align=right><input type=text name=mail_to maxlength=32></td></tr>
<tr><td width=50%>Subject:</td><td align=right><input type=text name=mail_subject maxlength=64></td></tr>
<tr><td width=50%>File:</td><td align=right><input type=file name=mail_file maxlength=64></td></tr>
<tr><td colspan=2>Сообщение:<br><textarea cols=50 rows=8 name=mail_msg></textarea></td>
</tr><tr><td colspan=2><input type=submit value='Отправить'></td></tr>
</form>
</table>
</center>
</BODY>
</HTML>
|
Тогда её обработчик simple_mail.php может выглядеть следующим образом
<?php
if(empty($_POST['mail_to'])) exit("Введите адрес получателя");
// проверяем правильности заполнения с помощью регулярного выражения
if (!preg_match("/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}$/i", $_POST['mail_to'])) exit("Введите адрес в виде somebody@server.com");
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
// Отправляем почтовое сообщение
if(empty($picture)) mail($users['email'], $thm, $msg);
else send_mail($users['email'], $thm, $msg, $picture);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$path = substr($path,12);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "";
$message_part .= "Content-Type: application/octet-stream";
$message_part .= "; file_name = \"$path\"\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= "--$boundary\n".$message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
?>
|
У меня слудующая ошибка выводится:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:Mail\simple_mail.php on line 17
Наверное апача неправильно настроена??? А какие значения нужно указывать апаче??? | |
|
|
|
|