
Ich möchte E-Mails an mehrere Ziele senden, z. B. an ein PHP-Skript und an das Postfach eines Benutzers. Ich verwende Exim zum Senden von E-Mails. Ich habe die Abschnitte „Router“ und „Transport“ der Exim-Konfigurationsdatei wie unten gezeigt geändert. Ich habe ein benutzerdefiniertes Transportmittel mit dem Namen „send_to_site“ entwickelt. Ich kann E-Mail-Header an das PHP-Skript senden, aber keine E-Mails an das Postfach des Benutzers. Hier ist mein benutzerdefiniertes Transportmittel:
######ROUTERcatchall_mail:
driver = accept
domains = my.server.com
transport = send_to_site
#####TRANSPORT
send_to_site:
driver = pipe
command = /home/bin/curl http://my.server.com/mailTest.php --data-urlencode "mail@-"
user = afterlogic
group = afterlogic
return_path_add
delivery_date_add
envelope_to_add
Wobei mailTest.php mein PHP-Skript ist.
Antwort1
Ich habe dieses Problem nach langer Zeit gelöst. Im Abschnitt „Router“ habe ich meinen eigenen benutzerdefinierten Router geschrieben, der E-Mails an mein gewünschtes PHP-Skript sendet. Im Abschnitt „Transport“ habe ich meinen eigenen benutzerdefinierten Transport geschrieben, der die Zustellung an das gewünschte Skript mithilfe von Curl sicherstellt. Ich habe gerade die folgenden Konfigurationen in meine /etc/exim.cnf
Datei geschrieben:
############ROUTERS
runscript:
driver = accept
transport = run_script
unseen
no_expn
no_verify
############TRANSPORT
run_script:
debug_print = "T: run_script for $local_part@$domain"
driver = pipe
command = /home/bin/curl http://my.domain.com/mailTest.php --data-urlencode $original_local_part@$original_domain
Wobei mailTest.php mein Zielskript war.
Antwort2
Sie müssen zwei Router erstellen, wobei der erste unseen
ein Verb enthalten sollte. Der erste Router muss die Nachricht an das Skript weiterleiten, während der zweite die normale Zustellung an das Postfach des Benutzers durchführen muss.
Entschuldigen Sie die kurze Antwort, ich poste vom Telefon aus.