2009-10-31 3 views
0

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

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

Как мне изобразить вне stmp_port для моего localhost?

EDIT:

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

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

+0

Если вы не знаете, что это такое, у вас его нет. –

ответ

2

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

Основание в качестве другой конфигурации электронной почты для SMTP. вам необходимо 4 информации по крайней мере:

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

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

$from = "Sandra Sender <[email protected]>"; 
$to = "Ramona Recipient <[email protected]>"; 
$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 счет - see here

+0

Благодарим за отличное предложение! Я даже не понял, что это вариант. Я буду изучать это дальше, если вместо этого не смогу использовать мой хостинг-провайдер. – zeckdude

1

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

+0

У меня есть хостинг-провайдер. Что мне нужно найти и где мне нужно опубликовать это в файле php.ini? Здесь? [почтовая доставка] ; Только для Win32. ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 – zeckdude

0

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

0

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

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

0

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

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

0

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

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

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

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