Отправляя письма с PHP, LAMPP и PostFix

Я пробовал в течение 2 целых дней теперь, и я просто не могу получить самую простую вещь работать.

Проблема: Отправка электронных писем от PHP до моего адреса электронной почты не работает

Я работал с Windows, и Sendmail (Sendmail был в пакете XAMPP), прежде, и все было в порядке. XAMPP-пакету (1.7.7) для Linux не интегрировали Sendmail все же. Таким образом, после поиска с помощью Google вокруг немного я узнал, что Постфикс соответствует лучше LAMPP-среде.


Что я попробовал до сих пор:

Я установил Постфикс и хотел настроить его, чтобы просто использовать smtp-сервер моего частного почтового поставщика (как он, сделал в Windows). Таким образом, у меня есть confogured мой php.ini как это:

[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

sendmail_path = /etc/postfix
mail.add_x_header = On

Обратите внимание, что я прокомментировал "Win32 только" - материал./etc/postfix/main.cf Похож на это:

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
myhostname = ubuntu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical
mydestination = ubuntu, localhost.localdomain, localhost
relayhost = mail.gmx.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

/etc/aliases неизменно:

# Required aliases
postmaster: root
MAILER-DAEMON:  postmaster

# Common aliases
abuse:      postmaster
spam:       postmaster

/etc/postfix/sasl_password:

my.providers.smtp my_login:my_password

/etc/postfic/sender_canonical:

postmaster my.email@ddress.com

Что происходит:

Таким образом, когда я делаю

> sudo /etc/init.d/postfix start

все, кажется, хорошо работает, и в /var/log/mail.log говорится: "постфикс/ведущее устройство человечности [9720]: запущенный демон - версия 2.8.5, конфигурация/etc/postfix"

Но когда я выполняю свой Сценарий PHP (который хорошо работал с Windows и Sendmail), он просто пробегает, и ничего не происходит, даже ошибка зарегистрирована.


Чего я на самом деле хочу достигнуть:

Я работаю локально над веб-сайтом электронной коммерции. Это хорошо работает на выделенном веб-сервере, но я хочу также иметь его работающий локально по очевидным причинам. В некоторых случаях это посылает электронные письма, и я просто хочу смочь получить их с Thunderbird или любым другим способом. Использует Постфиксное излишество здесь? Я не должен получать электронные письма - я просто хочу сделать отправленные письма видимыми так или иначе. Я, могло казаться, не нашел полезного step-by-step-tutorials для этой проблемы (ни относительно Senmail, ни относительно Постфикса - но, честно говоря, я очень плохо знаком с Linux).

9
задан 16 December 2011 в 03:13

3 ответа

Чтобы отправить электронное письмо (с пакетом sendmail) через Gmail с локального хоста, отметьте PHP + Ubuntu. Отправьте электронное письмо с помощью формы gmail.

0
ответ дан 16 December 2011 в 03:13

В вашем php.ini это:

sendmail_path = /etc/postfix

Должен быть путь к двоичному файлу sendmail (или совместимому).
Вы установили его в каталог конфигурации postfix, что неправильно.

По историческим причинам обычно /usr/bin/sendmail поддерживается в качестве канала совместимости.
sendmail был примерно первым (я думаю), и почти все предполагает, что он есть в установленном MTA. Поэтому, когда это не так, замена создает символическую ссылку, чтобы ничего не сломалось.

0
ответ дан 16 December 2011 в 03:13

Для отправки почты с локального хоста (WAMP, XAMP или LAMP) вы можете использовать пакет PHPMailer

Это будет та же инструкция, что и в файле readme.

WAMP (windows):

Сначала необходимо отредактировать «php.ini». Чтобы найти этот файл, отобразите phpinfo, используя следующий код с сервера WAMP. Создайте один файл php [setting.php] внутри C: / wamp / www / и добавьте следующее содержимое в этот файл.

<?php
     echo phpinfo();
?>

Введите localhost / setting.php в браузере. Там найдите «Загруженный файл конфигурации». Это будет путь к вашему php.ini .

В файле php.ini удалите; (точку с запятой), заданную для `extension = php_openssl.dll. Теперь настройка сервера завершена ...

  • После загрузки папки PHPMailer с github,
  • Extract-> Скопируйте полную папку в папку вашего проекта, например, C: / wamp / www /
  • Найдите файл index.php .
  • Измените параметр в соответствии с вашими потребностями.
  • Затем в браузере введите localhost / PHPMailer / index.php .
  • Тогда он будет показывать успешное сообщение, если электронное письмо отправлено, иначе он выдаст сообщение об ошибке.

LAMP (Linux):

  • В случае linux Нет необходимости редактировать файл php.ini, как я объяснил в первом пункте в разделе WAMP.

  • Еще одно изменение - это другой проект или корневая папка документа.

  • В Linux корневой папкой документа по умолчанию будет / var / www
  • Вы можете легко изменить корневую папку документа. Для этого посетите https://stackoverflow.com/a/17612396/1925943
  • Скопируйте PhpMailer в корневую папку этого документа и отредактируйте index.php, как вам нужно.
  • Затем введите localhost / PhpMailer / index.php в браузере.
  • [Тысяча сто тридцать два]
0
ответ дан 16 December 2011 в 03:13

Другие вопросы по тегам:

Похожие вопросы: