2013-05-27 7 views
-3

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

Я пытаюсь получить электронное письмо, отправленное с PHP, и бороться с конфигурацией sendmail. Отправка его через PHP не приводит к каким-либо выводам (mail() ведь возвращает только логическое значение), и попытка отправить его из командной строки приводит к ошибке «отказался от соединения», которая, как я полагаю, исходит из того факта, что я остановил sendmail оказание услуг. Поскольку мне не нужно получать какие-либо письма, мне не нужна услуга.

Так как же нужно настроить sendmail для работы без его фоновой службы и просто отправить данные/электронную почту, которые он получает через командную строку?

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

+3

обычно там очень мало нуждаясь конфигурации с Sendmail. настройки из коробки в большинстве дистрибутивов, поставляемых с sendmail, будут работать так же, как есть ... но нет, вы не можете действительно иметь sendmail без демона sendmail. sendmail проверяет демона как исходящей, так и входящей почты. –

+0

@MarcB Спасибо, Марк, но это именно то, чего я хочу избежать. Я не забочусь о входящей электронной почте и хочу только отправить. Есть ли какие-либо аргументы/настройки, которые могли бы достичь этого? Или вы знаете какой-либо альтернативный MTA, который не требует такой загрузки сервисов и конфигурации? :) – user2425954

+1

НУЖНО запустить службу sendmail. Раньше у меня был этот вопрос. – ramonovski

ответ

3

Варианты:

  1. Configure Sendmail as outbound-only.
  2. PHPmailer.

И вы не можете остановить службу Sendmail и по-прежнему ожидаем, что Sendmail сделать что-нибудь для вас. Это просто ... смешно.

+0

Большое спасибо за ссылку. Я только прочитал первые несколько строк, но это может быть многообещающим. PHPMailer, к сожалению, не является вариантом, так как это сторонний код, который зависит от 'mail()'. – user2425954

+0

Что нелепо? Мне не нужна услуга, делающая что-нибудь в фоновом режиме. Мне нужно что-то, что действует при вызове, и это не требует обслуживания. – user2425954

+1

@ пользователь2425954 ничего не делать в фоновом режиме за исключением, знаете, * отправка mail *. Как очень общий обзор Sendmail сводится к агенту отправки, который помещает почту в очередь, и агент доставки, который выводит сообщения из очереди и доставляет их. Агент отправки работает по требованию и поэтому 'mail()' возвращает 'true', потому что он помещает сообщения в очередь, проблема, с которой вы сталкиваетесь, состоит в том, что другая половина уравнения отключена.Мне не хватает места в комментариях, чтобы описать, как это необходимо для работы в фоновом режиме, но * это *. – Sammitch

0

Другим вариантом является передача непосредственно через другой SMTP-сервер с использованием почтового пакета Pear.

Больше информации здесь: http://tltech.com/info/php-mail-via-smtp/