Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка почты с локалхост
 
 автор: kilogram   (13.06.2012 в 01:08)   письмо автору
 
 

По данной инструкции http://www.simplecoding.org/php-mail-pod-windows.html, немного с изменениями неважными написал код.



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple Mail</title>
</head>
<body>
<?php
$addr 
'usa-1200@mail.ru';
$theme 'Для тебя';
$text 'Приве малыш! Как дела?';
if (isset(
$addr) && isset($theme) && isset($text)
        && 
$addr != "" && $theme != "" && $text != "") {
    if (
mail($addr$theme$text"From: vova_33@mail.ru")) {
        echo 
"<h3>Сообщение отправлено</h3>";
    }
    else {
        echo 
"<h3>При отправке сообщения возникла ошибка</h3>";
    }
}
?>
<form action="index.php.php" method="post">
<p>
    <label for="addr">eMail:</label>
    <input type="text" name="addr" id="addr" size="30" />
</p>
<p>
    <label for="theme">Тема письма:</label>
    <input type="text" name="theme" id="theme" size="30" />
</p>
<p>
    <label for="text">Текст письма:</label>
    <textarea rows="10" cols="20" name="text" id="text"></textarea>
</p>
<p>
    <input type="submit" value="Отправить" />
</p>
</form>
</body>
</html>




В поле email ввожу usa-1200@mail.ru
В поле тема пишу "Привет" и текст Привет Петя! в поле текст, нажимаю отправить. Выдает такое сообщение.

Not FoundThe requested URL /mailer.php was not found on this server.Apache/2.2.19 (Win32) PHP/5.3.6 Server at test.ru Port 80


Что делать?
sendmail.exe лежит у меня по такому пути: C:\php\sendmail\sendmail.exeВ php.ini


Указал в php.ini так:
smtp_port = 2525
SMTP = sendmail_from =
sendmail_path = "C:\php\sendmail\sendmail.exe -t"


http://s2.ipicture.ru/uploads/20120613/C1bDvquL.jpg

Файл sendmail.exe действительно у меня лежит по такому пути как я указал выше. После отправки, выдает такое сообщение:

Not FoundThe requested URL /mailer.php was not found on this server.


Помогите, что делать?

  Ответить  
 
 автор: kilogram   (13.06.2012 в 13:37)   письмо автору
 
   для: kilogram   (13.06.2012 в 01:08)
 

sendmail_from = 
SMTP =
smtp_port = 25
sendmail_path = "C:\php\sendmail\sendmail.exe -t"


Вот так настроил и такой код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple Mail</title>
</head>
<body>
<?php
$addr 
'usa-1200@mail.ru';
$theme 'Для тебя';
$text 'Приве малыш! Как дела?';
if (isset(
$addr) && isset($theme) && isset($text)
        && 
$addr != "" && $theme != "" && $text != "") {
    if (
mail($addr$theme$text"From: vova_33@mail.ru")) {
        echo 
"<h3>Сообщение отправлено</h3>";
    }
    else {
        echo 
"<h3>При отправке сообщения возникла ошибка</h3>";
    }
}
?>
<form action="index.php" method="post">
<p>
    <label for="addr">eMail:</label>
    <input type="text" name="addr" id="addr" size="30" />
</p>
<p>
    <label for="theme">Тема письма:</label>
    <input type="text" name="theme" id="theme" size="30" />
</p>
<p>
    <label for="text">Текст письма:</label>
    <textarea rows="10" cols="20" name="text" id="text"></textarea>
</p>
<p>
    <input type="submit" value="Отправить" />
</p>
</form>
</body>
</html>


Не работает. Что делать?

  Ответить  
 
 автор: serenya1983   (13.06.2012 в 15:28)   письмо автору
 
   для: kilogram   (13.06.2012 в 13:37)
 


<?php
set_time_limit
(3);
#Адрес smtp сервера.
$smtp "mail.infobox.ru";
#Порс сервера
$port 25;
#Имя сервера
$name "infobox.ru";

#Логин и пароль для авторизации
$login "login";
$password "password";

#Тема сообщения
$subject "theme";
#Текст сообдения
$message "message";
#От кого 
$from "test@onlinelpu.ru";
#Кому
$to "test@mail.ru";


$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
$result socket_connect($socket$smtp$port);
if (
$result === false) {
    echo 
"error connect";
    exit(
0);      
}
read();


write('EHLO '.$name);read();
write('AUTH LOGIN');read();
write(base64_encode($login));read();
write(base64_encode($password));read();
write("MAIL FROM: {$from}");read();
write("RCPT TO: {$to}");read();
write('DATA');read();

$subject=base64_encode($subject);
$subject="=?UTF-8?B?{$subject}?=";
$message=base64_encode($message);
$boundary=md5(uniqid(time()));
$str="";
$str.="MIME-Version: 1.0\n";
$str.="Content-Type: multipart/mixed; charset=\"utf-8\"; boundary=$boundary\r\n";
$str.="Content-Transfer-Encoding: 8bit\r\n"
$str.="Subject: ".$subject."\r\n";
$str .= "--$boundary\r\n";
$str .= "Content-type: text/html; charset = \"utf-8\"\r\n"
$str .= "Content-Transfer-Encoding: base64\r\n\r\n";
$str.="$message\r\n"
$str .= "--$boundary--\r\n";
write($str."\r\n\r\n{$message}\r\n.");read();

function 
read() {
    GLOBAL 
$socket;
    
$read socket_read($socket1024);
    echo 
str_replace("\n","<BR>",$read)."<BR>";
}
    
function 
write($msg) {
    GLOBAL 
$socket;
    echo 
"<b>".$msg."</b><BR>";
    
$msg $msg."\r\n";
    
socket_write($socket$msgstrlen($msg));
}

?>

  Ответить  
 
 автор: kilogram   (13.06.2012 в 19:43)   письмо автору
 
   для: kilogram   (13.06.2012 в 13:37)
 

Все, исправил ошибку. Оказывается в 3-ем параметре функции mail -> From: нужно было указать такое же название почты, как и в кофигурационном файле force_sender=usa-1400@mail.ru

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


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Simple Mail</title>
</head>
<body>
<?php
@$addr $_POST['addr'];
@
$theme $_POST['theme'];
@
$text $_POST['text'];
if (isset(
$addr) && isset($theme) && isset($text)
        && 
$addr != "" && $theme != "" && $text != "") {
    if (
mail($addr$theme$text"From: usa-1000@mail.ru \r\nContent-type: text/html; charset=UTF-8 \r\n")) {
        echo 
"<h3>Сообщение отправлено</h3>";
    }
    else {
        echo 
"<h3>При отправке сообщения возникла ошибка</h3>";
    }
}
?>
<form action="index.php" method="post">
<p>
    <label for="addr">eMail:</label>
    <input type="text" name="addr" id="addr" size="30" />
</p>
<p>
    <label for="theme">Тема письма:</label>
    <input type="text" name="theme" id="theme" size="30" />
</p>
<p>
    <label for="text">Текст письма:</label>
    <textarea rows="10" cols="20" name="text" id="text"></textarea>
</p>
<p>
    <input type="submit" value="Отправить" />
</p>
</form>
</body>
</html>

в маил.ру,яндекс.ру пришло в папку входящие, в ukr.net пришло в папку СПАМ, в i.ua тоже в СПАМ,нужно что-то решать.

Как сделать чтобы не приходило в СПАМ?

  Ответить  
 
 автор: kilogram   (15.06.2012 в 13:10)   письмо автору
 
   для: kilogram   (13.06.2012 в 19:43)
 

Попробовал отправлять с реального адреса эл. почты, в маил.ру, яндекс. ру, qip.ru, meta.ua, gmail.com приходит во входящие, в ukr.net,i.ua в спам.

Слышал что лучше пользоваться какими-то библиотеками для того чтобы в СПАМ не попадали письма, может кто знает какими?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования