Как мне определить smtp_port для моего локального хоста? - PullRequest
0 голосов
/ 31 октября 2009

Я использую скрипт, который отправляет электронные письма, и я получаю следующую ошибку:

Предупреждение: mail () [function.mail]: не удалось подключиться к почтовому серверу через порт «localhost» 25, проверить настройки «SMTP» и «smtp_port» в php.ini или использовать ini_set () в C : \ wamp \ bin \ php \ php5.3.0 \ PEAR \ Mail \ mail.php в строке 125

Как мне определить stmp_port для моего локального хоста?

EDIT:

Извините. У меня нет собственного сервера на компьютере, и я не думаю, что хочу его тоже настроить. Я не понимал, что это то, что нужно. Хотя у меня есть хостинг-провайдер, и я хотел бы выяснить, как использовать их данные SMTP для отправки моей почты, если кто-нибудь знает, как это сделать.

Согласно ответу Натана Адамса, я могу использовать информацию SMTP моего хостинг-провайдера. Что именно мне нужно, чтобы узнать, куда поместить эту информацию в мой файл php.ini?

Ответы [ 6 ]

2 голосов
/ 31 октября 2009

Это не только какой порт вам нужно знать. Вы также должны знать, каков адрес вашего почтового SMTP-сервера.

База как другая конфигурация электронной почты для SMTP. Вам нужно минимум 4 элемента информации:

  1. SMTP-сервер, например mail.example.com
  2. SMTP-порт [25 и 110 используются чаще всего]
  3. Имя пользователя, например foo@domain.com
  4. Пароль

Код должен выглядеть следующим образом.

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => 25
    'auth' => true,
    'username' => $username,
    'password' => $password));

может быть легко отправлять электронную почту через учетную запись gmail - см. Здесь

1 голос
/ 31 октября 2009

У вас должен быть запущен SMTP-сервер, в противном случае вам нужно установить SMTP и smtp_port в php.ini для кого-то другого (ваши интернет-провайдеры, ваши провайдеры хостинга и т. Д.).

0 голосов
/ 31 октября 2009

Существует очень хороший шанс того, что ваш PHP-скрипт работает как анонимный системный пользователь, то есть «никто» или «www-данные».

Многие хосты ограничивают доступ к порту 25 (локально) от анонимных пользователей, чтобы предотвратить злоупотребление почтовой программой. Вместо этого вам может потребоваться подключиться к вашему фактическому домену и пройти аутентификацию перед отправкой почты.

т.е. используйте «mydomain.com» «25» вместо «localhost», используя любой класс SMTP, который вам нравится. mail (), вероятно, будет бесполезным.

Дважды сверьтесь с вашим хостом, чтобы подтвердить это, но я подозреваю, что это так.

0 голосов
/ 31 октября 2009

Если вы используете SMTP-сервер на локальном хосте, вы должны установить и настроить его (и это действительно странно, что вы выбрали порт! = 25 ...), поэтому просто прочитайте ваши файлы конфигурации, чтобы узнать, где Вы установили его для запуска! Скорее всего, если вы никогда не слышали об этом, вы, вероятно, не работаете на каком-либо SMTP-сервере, и тогда ваш выбор - либо сделать это (подсказка: используйте порт 25, если вы это делаете, сделайте ваш лайк проще ! -) или найдите другого SMTP-сервера, который готов разместить вас, и настройте конфигурацию PHP так, чтобы она указала на него.

Редактировать : теперь, когда вы упомянули в комментарии, что вы являетесь хостинг-провайдером, тогда, конечно, вы должны спросить вашего провайдера, какой хост (может быть localhost, может быть чем-то другим) и порт (все ставки отключены!) они предоставляют вам SMTP-сервис.

0 голосов
/ 31 октября 2009

Если у вас нет SMTP-сервера, прослушивающего порт 25, скорее всего, у вас не работает SMTP-сервер. SMTP-сервер может быть настроен на прослушивание через другой порт только в очень индивидуальных сценариях.

Ответ на ваш оригинальный вопрос "это зависит". Это зависит от того, какое программное обеспечение вы используете для SMTP (на стороне сервера). Я не уверен, что есть простое решение, чтобы увидеть, есть ли «какой-то» SMTP-сервер, работающий на «каком-то» порту.

0 голосов
/ 31 октября 2009

У вас установлен SMTP-сервер? Это работает? Не уверен, на какой платформе вы находитесь, но в Windows вы можете запустить «netstat -a» из командной строки и посмотреть статус «LISTENING»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...