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

Мой интернет-провайдер заблокировал порт 25 для отправки писем с PHP и вместо этого разрешил использовать порт 587 или 465. как заставить функцию php mail использовать порт 587 вместо стандартного 25? BTW: я на OSX 10.6.6, используя MAMP PRO

UPDATE: я попытался изменить настройки в 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?

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

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

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

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

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

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

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

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

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

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

 ini_set('smtp_port', 587); 

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

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

b) открыть терминал и ввести 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 user@gmail.com:mypassword 

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

 sudo postmap /etc/postfix/sasl_passwd sudo postfix reload 

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