Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Отправка почты с локалхоста (https://javascript.ru/forum/server/29046-otpravka-pochty-s-lokalkhosta.html)

kilogram 13.06.2012 00:55

Отправка почты с локалхоста
 
По данной инструкции 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"




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

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


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

kilogram 13.06.2012 13:16

Код:

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>

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

kilogram 13.06.2012 19:41

Все, исправил ошибку. Оказывается в 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

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

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


Часовой пояс GMT +3, время: 14:04.