Всем добрый день
Помогите пожалуйста разобраться с PHP mail
Не как не могу заставить работать эту функцию, пробовал много разных вариантов но не чего не получилось, настраивал smtp но это мне не нужно
Требуется что бы скрипт (DLE или другой) отправляли письма посредством php mail, smtp будет от яндекса или гугла.
Пробовал установить ssmtp, но толку от этого не много так как сам php mail не работает и как проверить его не пойму
PHP mail Debian Squeeze
Вот конфиг ssmtp с домашней тачки (Squeeze):
root=user@gmail.com
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=user@gmail.com
AuthPass=superpassword
FromLineOverride=YES
В конфиге php вообще ничего связанного с почтой не трогал. Все работает.
У меня на gmail шлет так:
/etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
AuthUser=username@gmail.com
AuthPass=password
UseSTARTTLS=YESПробовал от яндекса и гугла приходят разные ошибки и не фига не работает
гугил
Feb 4 13:28:44 server sSMTP[19587]: SSL connection using RSA_ARCFOUR_SHA1
Feb 4 13:28:44 server sSMTP[19587]: Authorization failed (334 UGFzc3dvcmQ6)
яша
Feb 4 13:19:23 server sSMTP[19392]: Creating SSL connection to host
Feb 4 13:19:23 server sSMTP[19392]: SSL connection using RSA_AES_128_CBC_SHA1
Feb 4 13:19:23 server sSMTP[19392]: Server didn't accept AUTH LOGIN (535 5.7.8 Error: authentication failed:Invalid format.)
Пароли и порты пишу правильные
root=acc4mydrupal@gmail.com
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=acc4mydrupal@gmail.com
AuthPass=password
FromLineOverride=YES
root:acc4mydrupal@gmail.com:smtp.gmail.com:587
Kuper_s, root=USER!! никаких acc4mydrupal@gmail.com
пользователь должен быть у тебя в системе, обычно postmaster. Сделай так:
root=postmaster
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=acc4mydrupal@gmail.com
AuthPass=password
FromLineOverride=YESНа всякий случай загляни в /etc/passwd на наличие пользователя postmaster, должна быть примерно такая строка:
postmaster:x:14:247: :/var/spool/mail:/sbin/nologinТам много всякой хрени
vmail:x:5000:5000::/home/vmail:/bin/sh
где в этой стоке что означает
первое логин я так понял
Добавил эту строку письмо ушло вот тока теперь получается совсем не айс т к письмо приходит от моего ящика а не от сайта
Покажи что у тебя в /etc/ssmtp/revaliases
Перевод конфига:
$ cat ssmtp.conf
# /etc/ssmtp.conf -- конфигурационный файл для sSMTP sendmail.
#
# Пользователь, который получает всю почту для userids < 1000
# Сделайте пустым для отключения перезаписи. Или укажите пользователя.
# А также вы можете указать нужный е-майл на который будет
# приходить почта для root.
root=postmaster
# Место, где идет почта. Настоящее имя машины не требуются
# MX записи. Обычно mailhosts является именем mail.domain.com
# Например если вы находитесь в domain.com ваш mailhub с таким же именем.
mailhub=mail
# Пример для SMTP портом 2525
# mailhub=mail.your.domain:2525
# Пример для SMTP портом 25 (Standard/RFC)
# mailhub=mail.your.domain
# Пример для SSL шифрованного соединения
# mailhub=mail.your.domain:465
# От кого якобы должна приходить почта?
rewriteDomain=
# Полное имя машины
hostname=_HOSTNAME_
# Установите это чтобы никогда не переписывать "From:" (если не указано) и
# использовать этот адрес в "from line" оболочки.
#FromLineOverride=YES
# Использовать SSL/TLS, чтобы отправить безопасные сообщения на сервер.
#UseTLS=YES
# Использовать SSL/TLS сертификат для аутентификации на SMTP-хосте.
#UseTLSCert=YES
# Используйте этот сертификат RSA.
#TLSCert=/usr/local/etc/ssmtp/ssmtp.pem
# Получить расширенное (* действительно * расширенную) отладочную информацию в логах
# Если вы хотите иметь отладке в конфигурационных отпарсенных файлах, переместите этот
# параметр в начало файла конфигурации и раскомментируйте
#Debug=YESПример настройки:
Редактируем два файла: revaliases и ssmtp.conf
root=webmaster@mysite.ru
mailhub=smtp.gmail.com:587
rewriteDomain=mysite.ru
hostname=webmaster@mysite.ru
UseSTARTTLS=YES
AuthUser=my_user_name@gmail.com
AuthPass=my_password
FromLineOverride=YES
После этого в файл revaliases пишем:
# локальный_ юзер:исходящий@мыльный.адрес:почтовый.сервер:порт – шаблон
root:my_user_name@gmail.com:smtp.gmail.com:587
www-data:my_user_name@gmail.com:smtp.gmail.com:587
Проверяем работоспособность:
$ cat letter.txt | ssmtp admin@server.ruЕсли все ок, в настройках php.ini прописываем
sendmail_path="/usr/sbin/ssmtp -t"Ну как-то так, пробуй.
Не получается. Не отправляет. На команде
cat letter.txt | ssmtp saikov.vb@gmail.comзастревает
-v Go into verbose mode.riso, и что я должен увидеть?
у меня другая ситуация. на сервере ssmtp отрабатывает хорошо, письма ходят, а вот drupal, разлюбимый, пишет 2 ошибки (при регистрации)
Ошибка отправки e-mail (от мой_мэйл@gmail.com к мой_мэйл@gmail.com).
Ошибка отправки e-mail (от мой_мэйл@gmail.com к мэйл_пользователя@yandex.ru).riso, и что я должен увидеть?
на каком этапе застряет.
[console]echo "dfsfsd" | sendmail -v velik.84@mail.ru[/console]
Показать
velik.84@mail.ru... Connecting to [127.0.0.1] via relay...
220 ldap.mgkb1.local ESMTP Sendmail 8.13.8/8.13.8; Mon, 6 Feb 2012 22:01:12 +0400
>>> EHLO ldap.mgkb1.local
250-ldap.mgkb1.local Hello ldap.mgkb1.local [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<root@ldap.mgkb1.local> SIZE=7
250 2.1.0 <root@ldap.mgkb1.local>... Sender ok
>>> RCPT To:<velik.84@mail.ru>
>>> DATA
250 2.1.5 <velik.84@mail.ru>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 q16I1CAT003709 Message accepted for delivery
velik.84@mail.ru... Sent (q16I1CAT003709 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 ldap.mgkb1.local closing connectionА это логи
Feb 6 22:01:12 ldap sendmail[3708]: q16I1BqT003708: from=root, size=7, class=0, nrcpts=1, msgid=<201202061801.q16I1BqT003708@ldap.mgkb1.local>, relay=root@localhost
Feb 6 22:01:12 ldap sendmail[3709]: q16I1CAT003709: from=<root@ldap.mgkb1.local>, size=287, class=0, nrcpts=1, msgid=<201202061801.q16I1BqT003708@ldap.mgkb1.local>, proto=ESMTP, daemon=MTA, relay=ldap.mgkb1.local [127.0.0.1]
Feb 6 22:01:12 ldap sendmail[3708]: q16I1BqT003708: to=velik.84@mail.ru, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30007, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q16I1CAT003709 Message accepted for delivery)
на каком этапе застряет.
могу вводить символы, пока не нажму ctrl+c
вроде как он сохраняет его на локальной машине, готовым к отправке. Покажите весь ssmtp.conf