Jump to content
Дизайн и модификация Invision Power Board IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
maratoriy

Отправка почты через SMTP сервер

Recommended Posts

Добрый день.

Я сталкнулся с такой проблемой:

я хочу, чтобы все уведомления на имейл с форума отправлялись не через хостинг, а через сторонний почтовый сервер (например mail.ru). Я зарегистрировался на biz.mail.ru, настроил домен в соотсветствии с описанием.

Я прописал в админке форума в настройках имейла все, что нужно. Но как только я меняю Метод отправки почты с PHP на SMTP сообщения вообще не отправляются, появляется окно ввода сообщения, но кнопка "отправить" не нажимается.

Когда же стоит PHP, всё нормально отправляется, но через хостинг, а нужно, чтобы через сторонний сервер.

Просьба помочь разобраться. Заранее спасибо.

Share this post


Link to post
Share on other sites

Что значит не нажимается? При нажатие не происходит никаких действий? Тогда возможно во время выполнения скрипта произошла ошибка. Смотрите еррор ошибки сервера и логи о отправки почты в ац форума.

Share this post


Link to post
Share on other sites

В ац в журнале ошибок имейл сообщений написано:

Could not open a socket to the SMTP server (110:Время ожидания соединения истекло)

Что это значит и как это исправить?

Share this post


Link to post
Share on other sites

Всё сделал как в инструкции (и раньше так делал), но итог тот же: когда в открывшемся окне сообщения нажимаю кропку "отправить" - ничего не происходит и само окно не исчезает, как бывает, когда сообщение отправляется.

Share this post


Link to post
Share on other sites

Если есть ошибка значит не правильно настроили, в ошибке об этом конкретно сказанно.

Обратите внимание по какому протоколу работает smtp сервер. Для защищенного соединения нужно указать tls:// или ssl:// перед сервером. Работа почты проверяется в АЦ соответствующей функцией - проверка почты.

Share this post


Link to post
Share on other sites

Добрый день. Появилась новая проблема.

Когда отправка почты заработала я пользовался smtp.yandex.ru, но пришлось от него отказаться, я зарегил акк на mail.ru, сделал всё точно так же, как в яндексе, но при отправке писем мне выдаёт ошибку Password not accepted from the server

501 501 Syntactically invalid HELO argument(s) .

Я пробывал менять HELO на EHLO - не помогло.

Как это исправить?

Share this post


Link to post
Share on other sites

Прежде чем делать, сперва нужно прочитать документацию smtp сервера. http://ipbskins.ru/forum/topic14312.html#entry95795

 

По поводу ошибки гугл говорит что проблема может быть из-за хостнейма сервера. Обратитесь к своему хостеру.

Share this post


Link to post
Share on other sites

Порт - 25

Адрес сервера SMTP - smtp.mail.ru (шифрование не поддерживается, протокол указывать не нужно)

 

Порт - 465

Адрес сервера - tls://smtp.mail.ru (работать, скорее всего, не будет. проблемы с аутентификацией у движка)

Share this post


Link to post
Share on other sites

Сервер я указал tls://smtp.mail.ru, т.к. если без tls:// тогда при нажатии на кнопку отправить сообщение ничего не происходит и окно сообщения не изчезает.

Можно уточнить, что за хостнейм сервера и где его посмотреть??

Share this post


Link to post
Share on other sites
работать, скорее всего, не будет. проблемы с аутентификацией у движка

Не слышал про каких-то проблем с аутентификации смтп у движка. Раз у яндекса работает не думаю что проблема в нем.

Share this post


Link to post
Share on other sites

А я слышал и давно, да и здесь это было, про проблемы у всей третьей линейки конкретно c mail.ru и inbox.ua

Share this post


Link to post
Share on other sites

а какие есть альтернатива, кроме яндекса и мейла? с gmail я пробывал, там та же ошибка, что и на mail.ru

Share this post


Link to post
Share on other sites
А я слышал и давно, да и здесь это было, про проблемы у всей третьей линейки конкретно c mail.ru и inbox.ua

Проблема smtp авторизации на mail.ru действительно есть. Согласно RFC в EHLO (HELO) нужно указать имя хоста откуда происходит запрос. В запросе EHLO прописано имя smtp сервера и, хотя это не соответствует стандарту, проблема на самом деле заключается в том, что хост содержит протокол с которым в команде EHLO он не валидный, поэтому майл не принимает авторизацию.

 

220 smtp8.mail.ru ESMTP ready
> EHLO ssl://smtp.mail.ru
250-smtp8.mail.ru
250-SIZE 73400320
250-8BITMIME
250-PIPELINING
250 AUTH PLAIN LOGIN XOAUTH2
> AUTH LOGIN
334 VXNlcm5hbWU6
> dGVzdA==
334 UGFzc3dvcmQ6
> dGVzdA==
501 Syntactically invalid EHLO argument(s)

 

Исправить это можно в /ips_kernel/classEmail.php

 

$this->_smtpSendCmd( "{$this->smtp_helo} " . $this->smtp_host );

Заменив на:

 

$this->_smtpSendCmd( "{$this->smtp_helo} " . str_replace( array( 'ssl://', 'tls://' ), '', $this->smtp_host ) );

Или на: (согласно RFC2821)

 

$this->_smtpSendCmd( "{$this->smtp_helo} " . $_SERVER['SERVER_NAME'] );

 

Кроме того, mail.ru требует чтобы адрес отправителя (Email адрес для поля От) был из его зоны.

 

> MAIL FROM:no-reply@ipbskins.ru
550 not local sender over smtp

  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...