Я пробовал в течение 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).
Чтобы отправить электронное письмо (с пакетом sendmail) через Gmail с локального хоста, отметьте PHP + Ubuntu. Отправьте электронное письмо с помощью формы gmail.
В вашем php.ini это:
sendmail_path = /etc/postfix
Должен быть путь к двоичному файлу sendmail (или совместимому).
Вы установили его в каталог конфигурации postfix, что неправильно.
По историческим причинам обычно /usr/bin/sendmail
поддерживается в качестве канала совместимости.
sendmail
был примерно первым (я думаю), и почти все предполагает, что он есть в установленном MTA. Поэтому, когда это не так, замена создает символическую ссылку, чтобы ничего не сломалось.
Для отправки почты с локального хоста (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. Теперь настройка сервера завершена ...
LAMP (Linux):
В случае linux Нет необходимости редактировать файл php.ini, как я объяснил в первом пункте в разделе WAMP.
Еще одно изменение - это другой проект или корневая папка документа.