Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отправка почты PHP mail(), как всё это делается?  
:(
    Опции темы
Logree
Дата 2.9.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



   Здравствуйте, у меня такая проблема...Мне нужно отправить почту с помощью php у меня на компе стоит php+apache+mysql как привентить к ним почтовый сервер(какой нибудь денвер не предлогать запинаю ногами) вообще я так понял в *nix есть sendmail для которого предусмотрена даже своя настройка в php.ini а что делать под виндой... я вот установил Eserv2 но не знаю как его связать с php// 
Я так же не понял если у меня стоит свой mail server и я отсылаю письмо например на [email protected] то как вообще будет показан мой адрес... какие mail  сервера вы посоветуете ?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
BuShaRt
Дата 2.9.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Все гораздо проще, но для этого надо чуть-чуть почитать ;)

http://php-mail.ru/
http://www.phpclub.ru/detail/article/mail
PM MAIL   Вверх
Logree
Дата 2.9.2007, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



Как работает аочта я знаю... я спрашивал про другое...

Значит установил Courier Mail Server указал порт для smtp сервера  и сам smtp:localhost в php.ini 
потм в самом smtp servere указал  как домен localhost  ну и все остальные настройки... написал скрип... после выполнения ничего .. 
Код

<fieldset>
<legend>Отправка сообщения</legend>
  <form method="POST" action="">
      <table>
        <tr>
           <td>Кому</td>
           <td><input type="text" name="to" size="30"></td>
        </tr>
        <tr>
           <td>От</td>
           <td><input type="text" name="from" size="30"></td>
        <tr>
        </tr>
           <td>Тема</td>
           <td><input type="text" name="title" size="30"></td>
        <tr>
        </tr>
           <td>Текст</td>
           <td><textarea name="text" rows="10" cols="50"></textarea></td>
        </tr>
       </table>
       <input type="submit" name="go"  value="Отправить">
  </form>
</fieldset>
<?php

function SendMail($to,$from,$title,$text,$type) {
    $headers = "From: ".$from."\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=windows-1251\r\n\r\n";    
    if(mail($to,$title,$text,$headers)) {
        echo "Mail secsesful transfered!";        
    } else {echo "Eror";}
}
if(empty($_POST['go'])) {
    SendMail($_POST['to'],$_POST['from'],$_POST['title'],$_POST['text']);
}
?>

что не так?



--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
svip
Дата 2.9.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



А почему просто mail() не юзать?????
Код

 $to="кому";
 $text="текст письма можно и в html";
 $subject="Тема";
 $header="Content-type: text/html; charset=windows-1251 \n";
 $header.="From: [email protected]\n";
 $header.="Subject: $subject\n";
 $header.="Content-type: text/html; charset=windows-1251 \n";
  mail($to,$subject,$text,$header);



Вся элементарно. так всегда и юзаю  smile 
а для винды есть тоже заглушка sendmail. это конечно если тебе это нужно для тестирования smile

Это сообщение отредактировал(а) svip - 2.9.2007, 21:25
PM MAIL WWW ICQ   Вверх
Logree
Дата 2.9.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



чем то что ты написал отличается от того что написал я? Развечто 2 раза указат Content-type; к стати зачем?

Это сообщение отредактировал(а) Logree - 2.9.2007, 21:44


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
sTa1kEr
Дата 2.9.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Logree, 
Цитата(Logree @  2.9.2007,  20:54 Найти цитируемый пост)
$headers = "From: ".$from."\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=windows-1251\r\n\r\n";

Два \r\n в конце не обязательны, PHP сам подставит \r\n в конце. Хотя, конечно, это не ошибка.

Цитата(Logree @  2.9.2007,  20:54 Найти цитируемый пост)
function SendMail($to,$from,$title,$text,$type) {

Цитата(Logree @  2.9.2007,  20:54 Найти цитируемый пост)
SendMail($_POST['to'],$_POST['from'],$_POST['title'],$_POST['text']);

У вас функция принимает 5 обязательных параметра, а вы передаете только 4.

Цитата(Logree @  2.9.2007,  20:54 Найти цитируемый пост)
Значит установил Courier Mail Server указал порт для smtp сервера  и сам smtp:localhost в php.ini 
потм в самом smtp servere указал  как домен localhost  ну и все остальные настройки... написал скрип... после выполнения ничего .. 

А сам SMTP сервер работает? Проверьте на какой-нибудь почтовой программе.

И еще, почему не использовать SMTP сервер провайдера?
PM MAIL   Вверх
Logree
Дата 2.9.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



Код

У вас функция принимает 5 обязательных параметра, а вы передаете только 4.

уже иcправлено....
Код

А сам SMTP сервер работает? Проверьте на какой-нибудь почтовой программе.

работает... ->telnet localhost 25    220 и название сервера...

Код

И еще, почему не использовать SMTP сервер провайдера?

да в том-то и проблема что я не понимаю как всё это должно работать... Вот на пример я не понимаю... у этого сервера есть SMTP сервер и SMTP клиент..  у сервера( я так понял что всё таки сервер отправляет письма) в настрой ках только порт и галочка требовать авторизацию(но ни каких login\pass вводить ненадо в отличие от настроек клиента...) и вот как происходит эта авторизация я не понимаю.. ведь когда  череез pop телнетом присоединяешься на приме к pop.mail.ru это выглядет так...
telnet smtp.mail.ru 110
HELO mail.ru
дальше аворизация USER и PASS 
а вот  ведь SMTP тоже требует авторизации  но при конекте через SMTP авторизироваться нельзя...
да и вообще в голове такая каша ....
Я хочу чтобы отправка почты происходила не зависимо от внешних факторов... чтобы сервером SMTP был мой комп а и какой-то mail.ru ...
ЕСЛИ ВЕЗДЕ ВВОДИТЬ localhost то всё точно должно работать?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
sTa1kEr
Дата 2.9.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Logree @  2.9.2007,  23:22 Найти цитируемый пост)
ЕСЛИ ВЕЗДЕ ВВОДИТЬ localhost то всё точно должно работать?

Зачем везде? Только в SMTP. И еще вы закомментарили строчку sendmail_path ?

Добавлено через 3 минуты и 34 секунды
Да и еще сам провайдер в целях предотвращения рассылки спама может блокировать трафик на 25ый порт... Т.ч. я бы рекомендовал не просто телнетом на SMTP коннектится, но и отослать письмо во "внешний мир".
PM MAIL   Вверх
Logree
Дата 3.9.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



Код

Зачем везде? Только в SMTP. И еще вы закомментарили строчку sendmail_path ?

так она и была в коментах//
Код

но и отослать письмо во "внешний мир".

в смысле ? Админу?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
sTa1kEr
Дата 3.9.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Logree @  3.9.2007,  00:20 Найти цитируемый пост)
так она и была в коментах//

Тогда все правильно.

Цитата(Logree @  3.9.2007,  00:20 Найти цитируемый пост)
в смысле ? Админу? 

Да нет же smile Просто отправить тестовое письмо на свой ящик не через PHP, а через любую почтовую программу. Для того, что бы иметь 100% гарантию, что письма с этого SMTP доходят.

Почитайте первый комментарий на http://us2.php.net/manual/en/ref.mail.php#77499 . Там описывается как  можно использовать sendmail в Windows и как использовать SMTP с авторизацией.
PM MAIL   Вверх
Logree
Дата 4.9.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



отправил the Batом всё дошло...
SMTP = localhost
SMTP_PORT = 25
Код

 $to="моймайл";
 $text="<a href='#'>dfdf</a>";
 $subject="Тема";
 $header="Content-type: text/html; charset=windows-1251 \n";
 $header.="From: [email protected]\n";
 $header.="Subject: $subject\n";
 $header.="Content-type: text/html; charset=windows-1251 \n";
  mail($to,$subject,$text,$header);

выдаёт.. это что... ?
Код

Warning: mail() [function.mail]: SMTP server response: 530 Authentication required in C:\www\index.php on line 9

В клиенте создаётся учётная запись на неё ставиться login и пароль.. я так подозреваю но их требует... как ввести..?. сцылка http://us2.php.net/manual/en/ref.mail.php#77499 не катит... плохо с английским.. да и честно говоря разбираться времени нет..


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Logree
Дата 4.9.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



хотя если вы говорили про сокеты то я наверно разберусь smile


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
sTa1kEr
Дата 4.9.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(Logree @  4.9.2007,  18:46 Найти цитируемый пост)
SMTP server response: 530 Authentication required

Да, ваш SMTP сервер требует авторизации. Т.ч. либо настроить его без авторизации, либо одно из двух...

Цитата(Logree @  4.9.2007,  18:46 Найти цитируемый пост)
сцылка http://us2.php.net/manual/en/ref.mail.php#77499 не катит... плохо с английским..

Да там ни чего сложного. Скачать sendmail для Windows и прописать в настройках SMTP, логин и пароль...

Цитата(Logree @  4.9.2007,  19:30 Найти цитируемый пост)
хотя если вы говорили про сокеты то я наверно разберусь smile 

Можно и напрямую через сокеты, по той же ссылке есть готовые скрипты или воспользуйтесь PEAR-овским классом Mail. В любом случае ясно в чем была проблема.
PM MAIL   Вверх
Logree
Дата 5.9.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



Снова трабла .. установил вышеупомянутый Eserv2 там вообще только smtp и pop сервера ни каких клиентов... в настройках убрал авторизацию... на 25 порту откликается... почта батом доходит прравда минут через 10... скрипт выполняет... но письмо почему-то не  приходит... Дайте сцылку на send mail для windows/// запрос в google ничего не даёт.. только сцылки на какие-то левые самопальные программы... И ещё... что собственно делает веб сервер? можно ли отправлять почту без него... просто посылая запросы через сокет...? На мой взгляд так легче...

вот по этой сцылки описано как подрубиться к gmail там написанно порт 465 а на майл какой будет?

и вообще можно ли чем нибудь.. отослать письмо в  формате html...?
тоесть мне нужно отправить <a href="htttp://mysite.ru">http://notmysyte.ru</a> рылся в the bat но ничего не нашёл...


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1153 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.