изменить порт smtp с 25 на 587?


Мой провайдер заблокировал порт 25 для отправки почты с PHP, а вместо этого разрешил использовать порт 587 или 465. как заставить почтовую функцию php использовать порт 587 вместо 25 по умолчанию? КСТАТИ: я нахожусь на OSX 10.6.6, используя MAMP PRO

ОБНОВЛЕНИЕ: я попытался изменить настройки в php.ini на этот

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 587

Поскольку я нахожусь на Mac, я не думаю, что это может быть решением для меня, и оно не работает после того, как я попробовал. это дает мне следующее сообщение об ошибке.

May  6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2822]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May  6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2823]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May  6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2827]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May  6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2825]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out
May  6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2828]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out

Вы видите это все еще пытается подключиться через порт 25? как мне изменить его в mac?

Author: Ibrahim Azhar Armar, 2011-05-06

5 answers

Изменение smtp_port влияет только на то, как mail() взаимодействует с сервером, указанным параметром SMTP. Проблема не в этом. Проблема в том, что:

  1. Вы используете свой локальный компьютер в качестве SMTP-сервера - И
  2. Ваш интернет-провайдер блокирует ваш локальный SMTP-сервер (postfix) от передачи сообщений в Gmail

Во-первых, прочитайте эту тему . В нем обсуждается тот же самый вопрос. В результате вам нужно использовать другой почтовый сервер, предпочтительно почту вашего интернет-провайдера сервер. Какой сервер и порт ваш провайдер указывает вам использовать для исходящей почты, если вы хотите воспользоваться их почтовыми службами? Вы должны иметь возможность использовать это из своего PHP, работающего локально, точно так же, как вы бы использовали почтовый клиент, такой как Thundebird, - и вы сможете отправлять сообщения в Gmail.

 5
Author: AJ., 2011-05-06 17:26:03

Установите smtp_port = 587 в вашем php.ini. См. http://php.net/manual/en/mail.configuration.php

РЕДАКТИРОВАТЬ

Как отметил Эйджей, это не решит проблему, если вы используете локальный постфикс или отправку почты, что вы делаете, указав smtp = localhost. Попробуйте вместо этого установить его на адрес SMTP-сервера вашего провайдера.

Это может привести к следующей проблеме, если они также требуют аутентификации, прежде чем разрешить вам отправлять почту, что делают многие интернет-провайдеры. В этом случае вашим лучшим выбором будет почтовый пакет Груша. Это, кстати, также позволит вам указать почтовый сервер и порт в вашем скрипте. Из документации:

$params["host"] - The server to connect. Default is localhost.
$params["port"] - The port to connect. Default is 25.
$params["auth"] - Whether or not to use SMTP authentication. Default is FALSE.
$params["username"] - The username to use for SMTP authentication.
$params["password"] - The password to use for SMTP authentication.
 3
Author: Thilo, 2011-05-06 22:34:03

Вы можете отредактировать свой файл php.ini (если у вас есть доступ) и задать smtp_port = 587 или в своем коде, ini_set('smtp_port', 587).

 1
Author: Paul DelRe, 2011-05-06 14:58:27

Если вы можете, попробуйте переопределить настройку smtp_port с помощью ini_set(). Должно быть что-то вроде этого:

ini_set('smtp_port', 587);
 0
Author: Damien, 2011-05-06 14:58:42

Для тех из вас, кто использует MAMP и не может отправлять почту из функции php mail() из-за блокировки порта 25 провайдером (в моем случае), вот некоторая информация для вас, чтобы решить эту проблему. поскольку OSX использует postfix для отправки почты, и если вы планируете использовать внешний smtp-сервер, например smtp.gmail.com который я использовал здесь, это то, что вы должны делать. вам необходимо настроить Postfix для использования Gmail в качестве узла ретрансляции

A) Откройте MAMP и в постфиксе измените домен исходящей почты на smtp.gmail.com

Б) откройте терминал и введите sudo vi /etc/postfix/main.cf при этом будет запрошен ваш пароль администратора, введите его, и он откроется main.cf в редакторе vi

C) нажмите ctrl+f и перейдите в конец файла, переместите курсор на одну строку вниз от конца и нажмите a, редактор теперь переключится в режим вставки для редактирования файла.

В main.cf добавьте эти настройки

relayhost = [smtp.gmail.com]:587

smtp_tls_security_level = verify
#smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Нажмите :wq, чтобы выйти из vim. Вернитесь в тип оболочки sudo vi /etc/postfix/sasl_passwd и введите следующее (замените свой адрес gmail и пароль gmail):

[smtp.gmail.com]:587 [email protected]:mypassword

Снова нажмите :wq, чтобы сохранить и закрыть файл, и выполните следующую команду

sudo postmap /etc/postfix/sasl_passwd
sudo postfix reload

Надеюсь, это поможет кому-то с той же проблемой, с которой столкнулся я.

 0
Author: Ibrahim Azhar Armar, 2013-02-22 06:38:51