Отправка почты с хостинга, с учетом заголовков

Операционки на базе Unix
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 06 дек 2013, 16:40

Есть продвижения, не большие :-D :
Лог exim'a:

Код: Выделить всё

2013-12-06 10:33:46 1Von6o-0002Vs-El <= www@mx.hosting.com U=www P=local S=555 from <www@mx.hosting.com> for vasya@domain.com
2013-12-06 10:33:46 1Von6o-0002Vs-El ** vasya@domain.com R=smarthost_relay T=smarthost_smtp: SMTP error from remote mail server after MAIL FROM:<www@mx.hosting.com>: host 192.168.1.1 [192.168.1.1]: 550 5.7.1 Authentication Required
2013-12-06 10:33:46 1Von6o-0002Vx-GM <= <> R=1Von6o-0002Vs-El U=mailnull P=local S=1478 from <> for www@mx.hosting.com
2013-12-06 10:33:46 1Von6o-0002Vs-El Completed
2013-12-06 10:33:46 1Von6o-0002Vx-GM == www@mx.hosting.com R=localuser T=local_delivery defer (2): No such file or directory: failed to chdir to /nonexistent
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Raven » 06 дек 2013, 16:50

Авторизации требует!
После begin authenticators впиши

smarthost_login:
driver = plaintext
public_name = LOGIN
client_send = : username@domain.com : password # логин и пароль смартхоста

в конце транспорта smarthost_transport добавь
hosts_require_auth = *

Либо настрой ML1 чтоб молча релеил почту с ойпишнега exim. Последнее кстати более чем верно.
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 06 дек 2013, 17:21

Прописал авторизацию.
Лог exim'a:

Код: Выделить всё

2013-12-06 11:12:06 1Vonhu-0002Ya-4L <= www@mx.hosting.com U=www P=local S=555 from <www@mx.hosting.com> for vasya@domain.com
2013-12-06 11:12:06 1Vonhu-0002Ya-4L => vasya@domain.com R=smarthost_relay T=smarthost_smtp H=192.168.1.1 [192.168.1.1] X=TLSv1:AES256-SHA:256 C="250 2.0.0 52a1b1d4-0000005a Message accepted for delivery"
2013-12-06 11:12:06 1Vonhu-0002Ya-4L Completed
Лог почтовика ML1

Код: Выделить всё

[06/Dec/2013 17:15:32] Recv: Queue-ID: 52a1b1d4-0000005a, Service: SMTP, From: <www@mx.hosting.com>, To: <vasya@domain.com>, Size: 735, Sender-Host: 192.168.1.2, User: info@hosting.com, SSL: yes, Sender-Host-Name: mx.hosting.com, Subject: Отзыв, Msg-Id: <E1Vonhu-0002Ya-4L@mx.hosting.com>
[06/Dec/2013 17:15:36] Recv: Queue-ID: 52a1b1d8-0000005b, Service: DSN, From: <>, To: <www@mx.hosting.com>, Size: 2271, Report: failed, Subject: Возвращенное сообщение электронной почты: Отзыв, Msg-Id: <-1805411036-4792@hosting.com>
[06/Dec/2013 17:15:36] Sent: Queue-ID: 52a1b1d4-0000005a, Recipient: <vasya@domain.com>, Result: failed, Status: 5.1.8 550 Unroutable sender address, Remote-Host: 94.100.176.20, Remote-Host-Name: mxs.mail.ru, Msg-Id: <E1Vonhu-0002Ya-4L@mx.hosting.com>
[06/Dec/2013 17:15:36] Sent: Queue-ID: 52a1b1d8-0000005b, Recipient: <www@mx.hosting.com>, Result: failed, Status: 5.4.4 Host not found, Remote-Host: 127.0.0.1, Remote-Host-Name: localhost, Msg-Id: <-1805411036-4792@hosting.com>
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 06 дек 2013, 17:53

Поменял скрипт:
<?php
if ($_SERVER['REQUEST_METHOD']=='POST') {
$name = $_POST['username'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$notes = $_POST['notes'];
$email = $_POST['email'];
$goods = $_POST['goods'];
$from = 'no-replay@'.$_SERVER['HTTP_HOST'];
$headers = 'From: '.$from;
mail('vasya@domain.com', 'Отзыв', $goods, $headers, "-f no-replay@domain2.kg");
header("Location: /component/jshopping/cart/view.html");

}
?>
Все равно:
Status: 5.1.8 550 Unroutable sender address
Status: 5.4.4 Host not found
Может сам exim в заголовке From вносит своё имя?
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Raven » 06 дек 2013, 20:57

Да, from подставляет exim, так как при такой доставке будет использован локальный пользователь. слать надо через смтп - на порт то бишь.
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 07 дек 2013, 10:18

Попробовал через SMTP - exim вообще не получает письмо

Код: Выделить всё

<?php
	include('SMTPconfig.php');
	include('SMTPClass.php');
	if($_SERVER["REQUEST_METHOD"] == "POST")
	{
	$to = 'vasya@domain.com';
	$from = 'no-replay@'.$_SERVER['HTTP_HOST'];
	$subject = 'Отзыв';
	$body = $_POST['goods'];
	$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body);
	$SMTPChat = $SMTPMail->SendMail();
	header("Location: /component/jshopping/cart/view.html");
	}
	
?>
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Raven » 07 дек 2013, 11:12

А он запущен (как демон)?
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 07 дек 2013, 11:27

Да:

Код: Выделить всё

daemon_smtp_ports = 25 : 465 : 587

Код: Выделить всё

# sockstat -4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
mailnull exim-4.80. 17364 3  tcp4   *:25                  *:*
mailnull exim-4.80. 17364 4  tcp4   *:465                 *:*
mailnull exim-4.80. 17364 5  tcp4   *:587                 *:*
Аватара пользователя
Vano
Юзер
Юзер
Сообщения: 21
Зарегистрирован: 29 мар 2011, 20:08

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Vano » 07 дек 2013, 17:49

Таки нашел решение!

Только не exim, а msmtp:

Код: Выделить всё

# cd /usr/ports/mail/msmtp
# make install clean -s
# rehash 
Создаем лог файл и конфиг:

Код: Выделить всё

# touch /usr/local/etc/msmtprc
# touch /var/log/msmtp.log
Вносим в /usr/local/etc/msmtprc параметры:

Код: Выделить всё

account default
logfile /var/log/msmtp.log
domain mx.hosting.com
auth on
tls off
tls_starttls off
tls_certcheck off
host 192.168.1.1
port 25
protocol smtp
timeout 5
user admin@hosting.com
password pass

В php.ini вносим:

Код: Выделить всё

sendmail_path = "/usr/local/bin/msmtp -t --read-envelope-from"
При данной настройке, php будет передавать письмо msmtp, а он в сваю очередь будет пересылать по 25 порту, авторизуясь на 192.168.1.1 почтовике.
Параметр --read-envelope-from указывает брать заголовок From из php скрипта, в котором указано у нас:

Код: Выделить всё

$from = 'no-replay@'.$_SERVER['HTTP_HOST'];
т. е. no-replay@имя_домена
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Отправка почты с хостинга, с учетом заголовков

Сообщение Raven » 09 дек 2013, 00:22

Vano
*COOL*
Я не злопамятный, я просто часто ковыряю логи
Ответить

Вернуться в «Unix»