Apache sendmail: essayer de changer l'utilisateur "de" l'adresse du compte d'apache vers le domaine

Je m'excuse si je pose une question déjà répondu, mais mon problème n'est pas vraiment que je n'ai pas trouvé de réponse. En fait, j'ai trouvé une demi-douzaine de «solutions» différentes à mon problème, les ai essayé toutes, en diverses combinaisons, et ont toujours échoué.

Le but

Tout ce que je veux faire est de modifier l'adresse "de" pour tous les courriers électroniques envoyés par apache@localhost.localdomain à web@domain.org , toujours.


Ce que j'ai déjà fait

Je lance Apache, PHP et sendmail sur CentOS 5.5, linux@localhost.localdomain . Nous avons un serveur SMTP au 192.168.0.4. Les comptes de messagerie du domaine sont tous à @ domain.org .

J'ai réussi à configurer "smart host" en utilisant cette ligne dans le fichier sendmail.mc :

define(`SMART_HOST', `192.168.0.4')dnl 

Ensuite, j'ai mis en place des masquerades, et j'espérais que cela le résoudrait. Je l'ai dans le fichier .mc:

 FEATURE(`masquerade_entire_domain')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`allmasquerade')dnl MASQUERADE_AS(`domain.org')dnl MASQUERADE_DOMAIN(`domain.org.')dnl MASQUERADE_DOMAIN(`localhost.localdomain.')dnl 

Cela réécrit les adresses "à", mais pas "à partir" des adresses. Test à partir de la ligne de commande:

 sendmail -v user@example.com 

Toujours affiché par l'utilisateur local (dans ce cas, racine ou mon compte utilisateur local).

J'avais lu que la commande "sendmail" contourne parfois le masquerading. Néanmoins, l'utilisation de la commande "mail" a le même résultat.

Après cela, j'ai exploré plusieurs «solutions», notamment:

  • Mailertable
  • Virtusertable
  • FEATURE (`accept_unresolvable_domains ') dnl
  • LOCAL_DOMAIN (`localhost.localdomain ') dnl
  • FEATURE (`genericstable ') dnl
  • / Etc / mail / access file
  • / Etc / mail / local-host-name file
  • / Etc / mail / trusted-users file

Tout n'a aucun effet.


La dernière chose que j'ai essayé

Donc, j'ai décidé d'aller dans une direction différente, et essayer de définir l'adresse "à partir" de l'adresse via PHP, en utilisant soit la configuration dans /etc/php.ini , soit en ajoutant le paramètre -f à la fonction mail () ou à Commande sendmail .

Si je lance cette commande:

 sendmail -v -f web@domain.org user@example.com 

Je reçois cette erreur dans / var / log / maillog :

 Mar 30 08:56:16 localhost sendmail[24022]: p2UCuE8w024022: from=web@domain.org, size=5, class=0, nrcpts=1, msgid=<201103301256.p2UCuE8w024022@localhost.localdomain>, relay=user@localhost Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: to=user@example.com, ctladdr=web@domain.org (500/502), delay=00:00:05, xdelay=00:00:03, mailer=relay, pri=30005, relay=[192.168.0.4] [192.168.0.4], dsn=5.1.1, stat=User unknown Mar 30 08:56:19 localhost sendmail[24022]: p2UCuE8w024022: p2UCuE8x024022: DSN: User unknown Mar 30 08:56:23 localhost sendmail[24022]: p2UCuE8x024022: to=user@example.com, delay=00:00:04, xdelay=00:00:04, mailer=relay, pri=31029, relay=[192.168.0.4] [192.168.0.4], dsn=2.0.0, stat=Sent (Ok: queued as B5E2E40E0A2) 

Ce qui est essentiellement une erreur "utilisateur inconnu" 550.


Aidez-moi

Aidez-nous. Que dois-je changer? Dois-je recommencer dans le fichier sendmail.mc? Il y a une tonne d'options de configuration remplies, au cours des jours d'essais. Pourquoi le changement de l'adresse "à partir" de l'adresse via la ligne de commande générant une erreur "Utilisateur inconnu"?

J'ai découvert l'utilisation du paramètre -f. J'ai commencé à modifier sendmail.mc à partir de zéro, j'ai seulement inclus les propriétés MASQUERADE_AS.

Il s'avère qu'il s'agissait d'un rejet par le pare-feu de notre réseau. J'ai ajouté une exception dans le pare-feu. Soupir

EDIT: J'ai résolu cela en utilisant POSTFIX. Oubliez sendmail …