Simple Mail

Admin’s Notes

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail() .

И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
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 E:\www\simplemail\mailer.php on line .

Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web сервера и php интерпретатора не входит (и не должна).

Sendmail, в свою очередь, для отправки почты использует SMTP сервер.

Таким образом, чтобы php скрипт мог отправлять почту нужно установить и настроить sendmail и SMTP сервер.

Версию sendmail для Windows можно скачать здесь .

Установка и настройка выполняется в три этапа.

1) Распаковываем архив на тот же диск, где установлен php. Например, я создал папку C:\wamp\sendmail.

2) Вносим изменения в файл php.ini:

[mail function]
SMTP =
sendmail_from =
sendmail_path = «C:\wamp\sendmail\sendmail.exe -t»

Как видите, нужно только указать путь к sendmail чтобы php мог ее найти.

3) Настраиваем sendmail. Все настройки находятся в файле sendmail.ini (расположен в папке с sendmail).

Но перед тем как приступать к настройке пару слов об SMTP сервере. Вам совсем не обязательно устанавливать сервер на вашем компьютере. Многие почтовые сервисы предоставляют бесплатный доступ к своим серверам.

Ниже я покажу пример настройки sendmail для работы с SMTP сервером mail.ru, но, естественно, вы выбрать любой другой.

Итак, открываем sendmail.ini и устанавливаем следующие параметры:

smtp_server=smtp.mail.ru ; адрес SMTP сервера
smtp_port=25 ; порт SMTP сервера

default_domain=mail.ru ; домен по-умолчанию

error_logfile=error.log ; файл в который будет записываться лог ошибок

debug_logfile=debug.log ; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail

auth_username=account_name@mail.ru ; имя вашего аккаунта
auth_password=account_password ; ваш пароль

; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере
pop3_server=pop.mail.ru
pop3_username=account_name@mail.ru
pop3_password=account_password

; параметр для команды MAIL FROM
force_sender=account_name@mail.ru

Теперь не забудьте перезапустить web сервер, чтобы изменения вступили в силу.

протестировать работу можно скриптом

mail('to_your_friend@server.com', 'My Subject', 'My message');

Источник

PHP mail под Windows

PHP mail картинка с конвертом

В этой статье я хочу рассказать об отправке почты из php скриптов под Windows.

Америку я, конечно, не открою, но надеюсь, что кому-то эта статья будет полезна или просто сэкономит время.

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail() . И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
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 E:\www\simplemail\mailer.php on line .

Дело в том, что функция mail сама по себе почту не отправляет, она просто вызывает программу sendmail, которая в дистрибутив web сервера и php интерпретатора не входит (и не должна).

Sendmail, в свою очередь, для отправки почты использует SMTP сервер.

Таким образом, чтобы php скрипт мог отправлять почту нужно установить и настроить sendmail и SMTP сервер.

Версию sendmail для Windows можно скачать здесь.

Установка и настройка выполняется в три этапа.

1) Распаковываем архив на тот же диск, где установлен php. Например, я создал папку C:\wamp\sendmail.

2) Вносим изменения в файл php.ini:

[mail function]
SMTP =
sendmail_from =
sendmail_path = «C:\wamp\sendmail\sendmail.exe -t»

Как видите, нужно только указать путь к sendmail чтобы php мог ее найти.

3) Настраиваем sendmail. Все настройки находятся в файле sendmail.ini (расположен в папке с sendmail).

Но перед тем как приступать к настройке пару слов об SMTP сервере. Вам совсем не обязательно устанавливать сервер на вашем компьютере. Многие почтовые сервисы предоставляют бесплатный доступ к своим серверам.

Ниже я покажу пример настройки sendmail для работы с SMTP сервером mail.ru, но, естественно, вы выбрать любой другой.

Итак, открываем sendmail.ini и устанавливаем следующие параметры:

smtp_server=smtp.mail.ru ; адрес SMTP сервера
smtp_port=25 ; порт SMTP сервера

default_domain=mail.ru ; домен по-умолчанию

error_logfile=error.log ; файл в который будет записываться лог ошибок

debug_logfile=debug.log ; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail

auth_username=account_name@mail.ru ; имя вашего аккаунта
auth_password=account_password ; ваш пароль

; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере
pop3_server=pop.mail.ru
pop3_username=account_name@mail.ru
pop3_password=account_password

; параметр для команды MAIL FROM
force_sender=account_name@mail.ru

Теперь не забудьте перезапустить web сервер, чтобы изменения вступили в силу.

Чтобы протестировать работу почты напишем простенький скрипт:

01 02 03 04  05 06 07 Сообщение отправлено"; 15 > 16 else < 17 echo "

При отправке сообщения возникла ошибка

"; 18 > 19 > 20 ?> 21
22

23 24 25

26

27 28 29

30

31 32 33

34

35 36

37
38 39

Он создает форму с тремя полями для ввода адреса, темы и содержания письма. Нажатие на кнопку «Отправить» отправит запрос этому же скрипту (строка 21).

Если данные введены, то будет вызвана функция mail (строка 13), которая и отправит письмо. В случае успешной отправки функция возвращает true, в противном случае — false.

Как видите, ничего сложного в настойке почты нет.

Источник

mail() не отправляет письмо

подскажите пожалуйста как избавиться от этой ошибки и как отправить письмо?
Warning: 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 .

$to = 'some_addres@mail.ru'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers);

Mail не отправляет письмо
Подскажите в чем ошибка почему не доходят письма ? <?php $room = $_POST; $duration =.

Не отправляет письмо, когда пользуюсь функцией mail
Не отправляет письмо, когда пользуюсь функцией mail. Почитал немного, в php(у меня стоит пакет.

настройки php.ini:
SMTP = smtp.mail.ru
smtp_port = 25
sendmail_from = me@example.com
;sendmail_path =
может надо что-то исправить?

Добавлено через 24 минуты
можно ли из виндовс запустить эту функцию?

ЦитатаСообщение от Ufon Посмотреть сообщение

тестирую на локалке, ос — windows, не денвер.
php установлен как модуль.
уже пробовал по разному, ещё не получилось:
1)

Вносим изменения в файл php.ini:

[mail function]
SMTP =
sendmail_from =
sendmail_path = «C:\Program Files\sendmail\sendmail.exe -t -i»// без -i тоже не работает

настройки sendmail.ini
smtp_server=smtp.mail.ru; адрес SMTP сервера
smtp_port=25; порт SMTP сервера

default_domain=mail.ru; домен по-умолчанию

error_logfile=error.log; файл в который будет записываться лог ошибок

debug_logfile=debug.log; очень полезная на этапе отладки опция. Протоколируются все операции, которые выполняет sendmail

auth_username=account_name@mail.ru; имя вашего аккаунта
auth_password=account_password; ваш пароль

; следующие три опции используются если перед авторизацией на SMTP сервере требуется авторизация на POP3 сервере
pop3_server=pop.mail.ru
pop3_username=account_name@mail.ru
pop3_password=account_password

; параметр для команды MAIL FROM
force_sender=account_name@mail.ru

; you must change mail.mydomain.com to your smtp server,
; or to IIS’s «pickup» directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS’s pickup directory cause sendmail to
; run quicker, but you won’t get error messages back to the calling
; application.

; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn’t provided
; if you want to override the value in the registry, uncomment and modify

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

; if your smtp server requires authentication, modify the following two lines

; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.

pop3_server=
pop3_username=
pop3_password=

; to force the sender to always be the following email address, uncomment and
; populate with a valid email address. this will only affect the «MAIL FROM»
; command, it won’t modify the «From: » header of the message content

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting. you can manually set the ehlo/helo name if required

не хочет работать
никакие временные файлы не создаются в папке !tmp тоже.
что подскажите?
В книге говорится что есть две взаимоисключающие настройки в php.ini
1)SMTP = и
2) sendmail_path =
smtp = mail.ru не подходит

Добавлено через 11 минут

if(mail("someaddress@mail.ru","test","Hello")) echo "отправлено!";

такой простой код должен ведь отправить?
someaddress@mail.ru естественно моя почта

Добавлено через 16 минут
пишет что отправлено, но на почту не приходит

Добавлено через 8 часов 4 минуты
кто-то подскажет?

Источник

Читайте также:  Фильтр выбора на css
Оцените статью