LinuxForum.Fans
Тема

PHP mail Debian Squeeze

Автор: Kuper_s 15 сообщений 4667 просмотров
#226814

Всем добрый день

Помогите пожалуйста разобраться с PHP mail

Не как не могу заставить работать эту функцию, пробовал много разных вариантов но не чего не получилось, настраивал smtp но это мне не нужно
Требуется что бы скрипт (DLE или другой) отправляли письма посредством php mail, smtp будет от яндекса или гугла.
Пробовал установить ssmtp, но толку от этого не много так как сам php mail не работает и как проверить его не пойму

#226818

Вот конфиг ssmtp с домашней тачки (Squeeze):

text

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 вообще ничего связанного с почтой не трогал. Все работает.

#226820

У меня на gmail шлет так:
/etc/ssmtp/ssmtp.conf

text
mailhub=smtp.gmail.com:587
AuthUser=username@gmail.com
AuthPass=password
UseSTARTTLS=YES
#226844

Пробовал от яндекса и гугла приходят разные ошибки и не фига не работает

гугил
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

#226853

Kuper_s, root=USER!! никаких acc4mydrupal@gmail.com
пользователь должен быть у тебя в системе, обычно postmaster. Сделай так:

text
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, должна быть примерно такая строка:

text
postmaster:x:14:247: :/var/spool/mail:/sbin/nologin
#226866

Там много всякой хрени

vmail:x:5000:5000::/home/vmail:/bin/sh

где в этой стоке что означает
первое логин я так понял

Добавил эту строку письмо ушло вот тока теперь получается совсем не айс т к письмо приходит от моего ящика а не от сайта

#226880

Покажи что у тебя в /etc/ssmtp/revaliases

Перевод конфига:

text
$ 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

text
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 пишем:

text
# локальный_ юзер:исходящий@мыльный.адрес:почтовый.сервер:порт – шаблон 
root:my_user_name@gmail.com:smtp.gmail.com:587
www-data:my_user_name@gmail.com:smtp.gmail.com:587

Проверяем работоспособность:

text
$ cat letter.txt | ssmtp admin@server.ru

Если все ок, в настройках php.ini прописываем

text
sendmail_path="/usr/sbin/ssmtp -t"

Ну как-то так, пробуй.

#227384

Не получается. Не отправляет. На команде

text
cat letter.txt | ssmtp saikov.vb@gmail.com

застревает

#227385
text
-v     Go into verbose mode.
#227387

riso, и что я должен увидеть?

#227388

у меня другая ситуация. на сервере ssmtp отрабатывает хорошо, письма ходят, а вот drupal, разлюбимый, пишет 2 ошибки (при регистрации)

text
Ошибка отправки e-mail (от мой_мэйл@gmail.com к мой_мэйл@gmail.com).
Ошибка отправки e-mail (от мой_мэйл@gmail.com к мэйл_пользователя@yandex.ru).
#227389

riso, и что я должен увидеть?

на каком этапе застряет.

#227393

[console]echo "dfsfsd" | sendmail -v velik.84@mail.ru[/console]

Показать
text
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)
#227394
riso написал:
на каком этапе застряет.

могу вводить символы, пока не нажму ctrl+c

#227400

вроде как он сохраняет его на локальной машине, готовым к отправке. Покажите весь ssmtp.conf

Войдите или зарегистрируйтесь, чтобы ответить.