1 votes

Apache, hôtes virtuels, et expéditeur par défaut pour sendmail

Voici donc mon problème... J'ai deux sites hébergés sur une machine en utilisant les hôtes virtuels d'Apache. Je veux envoyer des e-mails à partir des deux sites différents (domaine.com et domaine2.com) en utilisant les adresses e-mail appropriées. J'ai actuellement cette valeur dans le php.ini :

sendmail_path = /usr/sbin/sendmail -t -i -fuser@domain.com

Mais lorsque j'essaie d'envoyer un courriel à partir d'un script sur le domaine2.com, il est évidemment délivré avec un From: user@domain.com en-tête. Apache ne permet pas de définir une règle de ce type à partir de l'application <VirtualHost> directive :

php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fuser@domain2.com"

Alors, quelle est la meilleure façon d'y parvenir ? J'ai essayé de définir php_admin_value mail.force_extra_parameters "-fuser@domain2.com" à partir de l'intérieur du domaine2.com <VirtualHost> mais tous les e-mails proviennent toujours de domain.com. Avez-vous des idées ?

0 votes

S'il vous plaît voir : stackoverflow.com/questions/179014/

0 votes

J'ai vu ça, mais modifier chaque appel à mail() n'était pas une option viable pour moi.

7voto

NealAZ Points 1

Bien que vous ne soyez pas autorisé à définir le chemin d'accès à sendmail depuis l'intérieur du fichier <VirtualHost> vous puede le placer dans le <Directory> directive. J'ai donc simplement quelque chose qui ressemble à ceci :

<VirtualHost *:80>
    Standard stuff goes here

    <Directory /dir/to/your/web/root>
        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fuser@domain2.com"
    </Directory>

</VirtualHost>

Je ne sais pas si c'est la manière la plus appropriée ou la plus élégante d'y parvenir, mais cela a fonctionné. Désolé d'avoir mis tant de temps à répondre, je ne vais pas souvent sur SF et j'ai oublié cette question.

0 votes

Jeff, je n'ai pas pu relever votre réponse mais MERCI ! Cela fait maintenant trois jours que je me bats contre ce problème sans succès et votre réponse est la première qui réussit à envoyer mes e-mails ! Elégant ou pas, un envoi vaut mieux que rien !

0voto

Sean Points 905

Vous devez retirer le -fuser@domain.com de votre php.ini. Et ensuite, modifiez le courrier électronique pour chaque script qui envoie le courrier pour chaque hôte de manière appropriée. De cette façon, vous pouvez passer le bon argument -f pour chaque hôte virtuel.

0 votes

Désolé, j'aurais dû ajouter cela dans mon OP. J'ai enlevé le -fuser@domain.com du fichier php.ini avant d'ajouter l'option mail.force_extra_parameters au fichier de configuration du serveur virtuel. Cela ne fonctionnait toujours pas. J'ai trouvé un moyen qui a fonctionné pour moi et que je posterai plus tard dans la soirée.

0 votes

Veuillez le poster pour un autre utilisateur qui semble avoir des problèmes. le même problème

0 votes

Oui, cette information serait très appréciée ! :)

0voto

Karamba Points 1

J'ai rencontré des problèmes lorsque j'ai essayé de modifier mon chemin d'accès à sendmail en utilisant php_value ou ini_set/ini_get (même avec safe_mode désactivé ! je ne sais pas vraiment pourquoi - PHP 5.3.3). Cependant, j'ai relu le manuel php fonction mail() et c'est la solution qui était sur la fonction.

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Donc le dernier paramètre permet des paramètres supplémentaires. J'ai changé mon code de courrier php de mail($to,$subject,$message,implode(" \r\n ", $headerFields), "-f".$from ) ;

Je pense que c'est Jeff vous trouverez cela plus intelligent.

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X