2011-01-20 3 views
9
  • Я разрабатываю веб-приложение с PHP 5.3.3.
  • Я хочу, чтобы он автоматически отправлял электронные письма с подтверждением.
  • У меня пока нет доменного имени.
  • Я использую Windows XP.
  • У меня нет почтового пакета PEAR.
  • У меня есть hMailServer и почтовый сервер, который я хочу использовать для отправки электронной почты.

Мои вопросы:Каковы требования для отправки электронной почты с помощью PHP?

  1. Могу ли я отправить электронную почту без доменного имени? (Это абсолютно необходимо? Я просто хочу проверить приложение на данный момент.)
  2. Если требуется доменное имя, мне также необходимо разместить приложение с помощью поставщика услуг хостинга? Могу ли я сделать это с моего компьютера? (Помните, я просто хочу протестировать приложение.)
  3. Нужен ли мне почтовый пакет PEAR? или я могу просто использовать функцию mail()?

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

ответ

2
  1. Да. Вы можете установить свой «от» адрес до того, что хотите. (Хотя обратите внимание, сервер получателя может обнаружить, что он подделан и отклонил его.)

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

  3. почты() будет достаточно, если у вас есть локальный SMTP-сервер, который будет обрабатывать ваши сообщения. (Я предполагаю, что это то, что hMailServer продукт.)

+0

Проблема, с которой я столкнулся, заключалась в том, что почта даже не была принята для dlivery, теперь она есть. Все, что мне нужно было сделать, это добавить заголовок «From:». Я использовал свой Gmail addr в качестве приемника для тестирования. Предположительно, почта была отправлена ​​bcause, функция mail() вернула true.I не могу подтвердить это, потому что у меня нет имени домена, поэтому заголовок «From:», который я использовал, был только моим именем, и, как вы сказали, возможно сервер получателя отклонил его, поскольку он даже не отображается как спам. Я решил получить DN, создать с ним почтовый адрес и попробовать еще раз. Должна ли функция mail() возвращаться true, если у меня не было SMTP-сервера? – ecantu

0
  1. Да, вы можете. Я полагаю, что ваши сообщения по электронной почте будут отображаться с DNS вашего сервера по умолчанию, но вы можете установить заголовок from: в любом месте. Однако, если вы измените заголовок from:, будьте предупреждены, что ваши письма, скорее всего, будут удалены фильтрами спама.

  2. Для использования функции php mail() вам нужна специальная конфигурация сервера. Я не пробовал настраивать ее самостоятельно, но я знаю, что базовая локальная установка apache/php не сможет отправлять электронные письма , Тем не менее, каждый платный веб-сервер должен быть настроен правильно.

  3. № Вы можете отправлять регулярные и html-письма с помощью функции generic mail().

+0

Я не понял эту часть: «Я считаю, что ваши письма будут отображаться с DNS вашего сервера по умолчанию». У меня нет имени домена, поэтому у меня нет DNS. – ecantu

+0

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

1

Во-первых, если вы работаете в Windows, как сервер, вам нужно настроить, как ваши сообщения электронной почты будут отправлены (SMTP-сервер). Перейдите в этот раздел в файле php.ini. Измените localhost на SMTP-сервер, который вы можете использовать в своей сети (либо IP-адрес вашего hMailServer, либо иногда вам необходимо приобрести его, например http://www.smtp2go.com/).

 
[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = localhost 
; http://php.net/smtp-port 
smtp_port = 25 

Во-вторых, вы используете функцию почты (...) в php (включая возможность отправки HTML-почты). Вот и все.

+0

Я оставил «localhost», потому что адрес hMailServer - «localhost». Благодарю. – ecantu