Page 1 of 1

[réglé] Ajout d'un Bcc pour tout les mail de contacts

Posted: Mon Aug 27, 2007 3:31 pm
by Nadirdz
Bonjour, alors voici mon petit problème, , j'ai mis en place un site Joomla pour un client et il me demande si possible qu'il puisse recevoir les mail envoyé par les internautes aux membres des contacts du site (société de vente pour contrôler l'activité des membres de son administration) mais en mail invisible, donc en Bcc et j'aimerai savoir ou ajouter
$headers  .= "Bcc: mail_de_mon_client@dns.ext \n";
si possible, merci de m'aider.
PS: surtout ce qui m'aiderai le plus est de savoir quel sont les fichiers dans Joomla à modifier pour cela.

Re: ajout d'un Bcc pour tout les mail de contacts

Posted: Thu Sep 06, 2007 2:44 pm
by ouly
Bonjour Nadirdz,
Dans le fichier /components/com_contact/contact.php, ligne 435 :

Code: Select all

		$success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text );
remplacez par :

Code: Select all

        if ( $contact[0]->email_to != $mosConfig_mailfrom )
            $success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text, 0, null, $mosConfig_mailfrom );
        else
            $success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text );
Ouly

Re: ajout d'un Bcc pour tout les mail de contacts

Posted: Thu Sep 06, 2007 10:38 pm
by Nadirdz
Merci ouly c'est très très astucieux vraiment, seulement je ne comprends pas la nécessité de la condition?
Pourquoi ne pas faire à la place de

Code: Select all

$success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text );
directement ce code sans condition

Code: Select all

$success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text, 0, null, $mosConfig_mailfrom );
ou c'est juste dans le cas ou

Code: Select all

$mosConfig_mailfrom
est nul?
Dans ce cas es ce que ce code réglera le problème sans la condition

Code: Select all

$success = mosMail( $email, $name , $contact[0]->email_to, $mosConfig_fromname .': '. $subject, $text, 0, null, mail_de_mon_client@dns.ext );
D'autre part es ce que vraiment c'est un Bcc ou juste un Cc?, merci de me répondre encore je sais que je suis encombrant.

Re: ajout d'un Bcc pour tout les mail de contacts

Posted: Fri Sep 07, 2007 6:41 am
by ouly
Si l'adresse du destinataire est la même que l'adresse de copie invisible, inutile d'envoyer une copie à la personne concernée puisqu'elle recevra de toute façon le message. En pratique, il semblerait qu'un courriel n'est envoyé qu'une fois à chaque destinataire (que ce soit en To, Cc ou Bcc) mais je ne sais pas dans quelle mesure on peut compter sur ce comportement.

Dans le cas présent, il s'agit bien d'une copie conforme invisible (Bcc) :

Code: Select all

<?php
/**
* Mail function (uses phpMailer)
* @param string From e-mail address
* @param string From name
* @param string/array Recipient e-mail address(es)
* @param string E-mail subject
* @param string Message body
* @param boolean false = plain text, true = HTML
* @param string/array CC e-mail address(es)
* @param string/array BCC e-mail address(es)
* @param string/array Attachment file name(s)
* @param string/array ReplyTo e-mail address(es)
* @param string/array ReplyTo name(s)
* @return boolean
*/
function mosMail( $from, $fromname, $recipient, $subject, $body, $mode=0, $cc=NULL, $bcc=NULL, $attachment=NULL, $replyto=NULL, $replytoname=NULL );
D'ailleurs je viens de voir qu'il y a un couac dans le fichier /includes/phpmailer/class.phpmailer.php. Pour que les en-têtes Cc passent, il faudrait remplacer les lignes 771 à 780 :

Code: Select all

		// To be created automatically by mail()
		if($this->Mailer != "mail")
		{
			if(count($this->to) > 0)
				$result .= $this->AddrAppend("To", $this->to);
			else if (count($this->cc) == 0)
				$result .= $this->HeaderLine("To", "undisclosed-recipients:;");
			if(count($this->cc) > 0)
				$result .= $this->AddrAppend("Cc", $this->cc);
		}
par :

Code: Select all

		// To be created automatically by mail()
		if($this->Mailer != "mail")
		{
			if(count($this->to) > 0)
				$result .= $this->AddrAppend("To", $this->to);
			else if (count($this->cc) == 0)
				$result .= $this->HeaderLine("To", "undisclosed-recipients:;");
		}

		if(count($this->cc) > 0)
			$result .= $this->AddrAppend("Cc", $this->cc);

Re: ajout d'un Bcc pour tout les mail de contacts

Posted: Fri Sep 07, 2007 3:59 pm
by Nadirdz
Bonjour, Merci ouly ça devien plus claire avec le /includes/joomla.php, merci encore, en tous cas je l'ai testé et ça marche très bien.

Re: ajout d'un Bcc pour tout les mail de contacts

Posted: Sat Sep 08, 2007 11:41 am
by mejean
Merci Ouly !

Pense à [réglé] le message Nadirdz !

Re: [réglé] Ajout d'un Bcc pour tout les mail de contacts

Posted: Fri Sep 25, 2009 3:58 pm
by Ptit Philippe
bonsoir,

comment adapter la modification à la version 1.5.14 ?
le fichier /components/com_contact/contact.php ne fait pas 455 lignes :(

merci d'avance

Re: [réglé] Ajout d'un Bcc pour tout les mail de contacts

Posted: Sat Oct 02, 2010 10:04 am
by yanniks
Bonjour,

Avez-vous la solution pour la nouvelle version ... le fichier n'est pas le même.

Merci d'avance

Ludovic.

--------------

Hello,

Have you a soluce for the new version ...

Thank You

Ludovic