2016-03-23 2 views
0

Le serveur a 2 utilisateurs: admin et joe. Les deux utilisateurs appartiennent aux mêmes groupes. Si j'essaie d'envoyer des emails à partir de domaines (via un script php) qui appartiennent à l'admin - tout fonctionne. Mais pour les domaines qui appartiennent à Joe - la fonction mail() n'envoie pas de courrier électronique. J'ai activé mail.log dans php.ini et j'ai vu que php fonctionnait correctement.Pourquoi envoyer/ne pas envoyer des emails de différents utilisateurs sur le serveur via php?

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

Exim 4.86

/usr/local/etc/exim/passwd - vide

mainlog, paniclog - ne dispose pas d'erreurs

Résultat exim -bd -d+all:

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) 

Répondre

0

Par défaut, tous les utilisateurs, à l'exception de exim_user et exim_group, ne sont pas approuvés et ne peuvent donc pas envoyer de messages d'autres utilisateurs. Par conséquent, lorsque exim est appelé par php, il est obligé d'utiliser sender_address comme [email protected] - car l'utilisateur www a utilisé apache/nginx pour invoquer php qui invoque exim.

Vous devez ajouter www utilisateur à l'exim trusted_users ou trusted_groups. L'autre approche consiste à utiliser la session SMTP au lieu de l'appel direct exim. Il suffit de configurer votre PHP pour utiliser l'IP réelle où votre exim écoute pour la connexion et c'est suffisant.

+0

Tout ce qui ne explique pas pourquoi php envoie des courriels de l'admin et ne pas envoyer de Joe. trusted_users est déjà www. J'essaie de changer les trusted_users et les trusted_groups mais sans résultat. –