2016-03-23 9 views
0

Der Server hat 2 Benutzer: Admin und Joe. Beide Benutzer gehören zu denselben Gruppen. Wenn ich versuche, E-Mails von Domänen (über PHP-Skript), die zu Admin gehören, zu senden - alles funktioniert. Aber für Domains, die zu Joe gehören - Funktion mail() sendet keine E-Mail.Warum exim senden/nicht senden von E-Mails von verschiedenen Benutzern auf dem Server über PHP?

Ich aktivieren mail.log in php.ini und sah, dass PHP richtig funktioniert.

Apache/2.4.16 (FreeBSD) mpm-itk/2.4.7-02

exim 4,86 ​​

/usr/local/etc/exim/passwd - leer

mainlog, paniclog - haben keine Fehler

Ergebnis :

WHITELIST_D_MACROS unset 
TRUSTED_CONFIG_LIST unset 
12:54:37 8586 changed uid/gid: forcing real = effective 
12:54:37 8586 uid=0 gid=0 pid=8586 
12:54:37 8586 auxiliary group list: 0 
12:54:37 8586 seeking password data for user "www": cache not available 
12:54:37 8586 getpwnam() succeeded uid=80 gid=80 
12:54:37 8586 seeking password data for user "mailnull": cache not available 
12:54:37 8586 getpwnam() succeeded uid=26 gid=26 
12:54:37 8586 seeking password data for user "root": cache not available 
12:54:37 8586 getpwnam() succeeded uid=0 gid=0 
12:54:37 8587 changed uid/gid: calling tls_validate_require_cipher 
12:54:37 8587 uid=26 gid=6 pid=8587 
12:54:37 8587 auxiliary group list: 6 
12:54:37 8586 tls_validate_require_cipher child 8587 ended: status=0x0 
12:54:37 8586 configuration file is /usr/local/etc/exim/configure 
12:54:37 8586 log selectors = 0000cffe 00733801 
12:54:37 8586 cwd=/etc 3 args: exim -bd -d+all 
12:54:37 8586 trusted user 
12:54:37 8586 admin user 
12:54:37 8586 DSN: dnslookup propagating DSN 
12:54:37 8586 DSN: disabled_domains propagating DSN 
12:54:37 8586 DSN: disabled_users propagating DSN 
12:54:37 8586 DSN: local_domains propagating DSN 
12:54:37 8586 DSN: group_aliases propagating DSN 
12:54:37 8586 DSN: aliases propagating DSN 
12:54:37 8586 DSN: aliases_pipe propagating DSN 
12:54:37 8586 DSN: local_users propagating DSN 
12:54:37 8586 DSN: catchall_for_domains propagating DSN 
12:54:37 8586 DSN: unknown_users propagating DSN 
12:54:37 8586 DSN: autoreplay propagating DSN 
12:54:37 8586 DSN: localuser propagating DSN 
12:54:37 8586 DSN: a_dnslookup propagating DSN 
12:54:37 8586 DSN: a_disabled_domains propagating DSN 
12:54:37 8586 DSN: a_disabled_users propagating DSN 
12:54:37 8586 DSN: a_local_domains propagating DSN 
12:54:37 8586 DSN: a_aliases propagating DSN 
12:54:37 8586 DSN: a_aliases_pipe propagating DSN 
12:54:37 8586 DSN: a_local_users propagating DSN 
12:54:37 8586 DSN: a_catchall_for_domains propagating DSN 
12:54:37 8586 originator: uid=0 gid=0 login=root name=Charlie Root 
12:54:37 8586 LOG: MAIN 
12:54:37 8586 IPv6 socket creation failed: Protocol not supported 
12:54:37 8586 LOG: MAIN 
12:54:37 8586 Failed to create IPv6 socket for wildcard listening (Protocol not supported): will use IPv4 
12:54:37 8586 LOG: MAIN 
12:54:37 8586 socket bind() to port 25 for address (any IPv4) failed: Address already in use: waiting 30s before trying again (9 more tries) 

Antwort

0

Standardmäßig sind alle Benutzer außer exim_user und exim_group nicht vertrauenswürdig, sodass sie keine Nachrichten von anderen Benutzern senden können. Deshalb, wenn exim von php aufgerufen wird, ist es gezwungen, sender_address wie [email protected] zu verwenden - weil Benutzer www verwendet, um Apache/nginx zu starten, die php aufrufen, die exim aufrufen.

Sie müssen www Benutzer zu den Exim trusted_users oder trusted_groups hinzufügen. Der andere Ansatz besteht darin, eine SMTP-Sitzung anstelle eines direkten Exim-Aufrufs zu verwenden. Konfigurieren Sie einfach Ihr PHP, um echte IP zu verwenden, wo Ihr exim auf Verbindung wartet, und das ist genug.

+0

Das alles erklärt nicht, warum PHP E-Mails von Admin senden und nicht von Joe senden. trusted_users ist bereits www. Ich versuche trusted_users und trusted_groups zu ändern, aber ohne Ergebnis. –