Как заставить Drupal работать с почтовым сервером Mercury на локальном компьютере


Я успешно настроил почтовый сервер Mercury на своем локальном компьютере, используя стек XAMPP для отправки почты через удаленный SMTP-сервер, следуя инструкциям по настройке, опубликованным на: https://www.zoe.vc/2008/mercury-mail-transport-system-fur-externe-mail-konfigurieren / Если почта отправляется на локальные или внешние адреса электронной почты с помощью обычного почтового клиента, например Thunderbird, Mercury Mail обрабатывает почту надлежащим образом, и почта прибывает в ожидаемый почтовые ящики.

Однако отправка почты через мой локальный сайт Drupal 7 не работает.

  • Например, сайт включает набор правил, созданных с помощью модуля Правил, которые настроены для отправки почты на набор адресов электронной почты при срабатывании.
  • Drupal сообщает, что он успешно отправляет почту на целевые адреса при срабатывании правил.
  • Но Mercury Mail не показывает никаких доказательств того, что почта обрабатывается - и почта никогда не появляется в адресные почтовые ящики.

Таким образом, почта от Drupal не попадает на сервер, но Drupal считает, что она была успешно отправлена. Обратите внимание, что в соответствии с указаниями от zoe.vc, конфигурация [почтовой функции] в php.ini настроена следующим образом:

[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.  

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "C:\xampp\php\logs\php_mail.log"

Я потратил бесчисленное количество часов, пытаясь разобраться в этом. Любая помощь в том, чтобы это работало через drupal, чтобы я мог продолжить разработку, будет очень признательна. Заранее спасибо.

 1
Author: Stackoverflower, 2013-01-12

1 answers

Когда я тестировал отправку почты с локального хоста (хотя я не помню программу почтового сервера), я использовал модуль Поддержки аутентификации SMTP для его настройки.

Этот модуль позволяет Drupal обходить функцию PHP mail() и отправлять электронную почту непосредственно на SMTP-сервер. Модуль поддерживает аутентификацию по протоколу SMTP и даже может подключаться к серверам с использованием SSL, если поддерживается PHP.

 2
Author: AjitS, 2013-01-13 10:12:53