THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 AddAttachment

(02-09-2013 13:23:22)


Bonjour à tous!

J'essaye de transmettre un fichier uploadé via un formulaire en pièce jointe mais je reçois le mail sans pièce jointe...

$mail = new Mail();
$mail->AddAttachment($dossier.$fichier1);
$mail->AddAttachment($dossier.$fichier2);
$mail->envoyer($nomsite, $emailcontact, $nom." ".$prenom, $email, $sujet, $corps, strip_tags($corps));

Pour infos, les deux fichiers sont bien uploadés sur le serveur et $dossier est sous la forme './client/cache/...'

Une idée?

Last edited by Elyos (02-09-2013 13:23:44)


Aide les autres, ils t'aideront en retour.

Offline

#2 Re: AddAttachment

(02-09-2013 13:38:18)


La fonction envoyer() de Mail est statique, et crée un nouvel email: c'est une fonction "raccourci" pour envoyer un mail "de base". D'ailleurs, tu dois utiliser Mail::envoyer() et non pas $mail->envoyer()...

Bref, ce code devrait mieux marcher.

$mailclient = Mail::creermailer();

$mailclient->FromName = utf8_decode($from_name);
$mailclient->From = $from_address;

$mailclient->AddAddress($to_address, utf8_decode($to_name));

$mailclient->Subject = utf8_decode($subject);

$mailclient->MsgHTML(utf8_decode($msg_html));
$mailclient->AltBody = utf8_decode($msg_text);

$mailclient->AddAttachment($dossier.$fichier1);
$mailclient->AddAttachment($dossier.$fichier2);

$mailclient->send();

OpenStudio Toulouse

Offline

#3 Re: AddAttachment

(02-09-2013 13:49:34)


C'est bien ce qu'il me semblait ^^
Et en effet ça marche mieux tongue


Aide les autres, ils t'aideront en retour.

Offline

#4 Re: AddAttachment

(06-02-2015 10:42:24)


est-il possible de l'adapter à ce code ? où faut-il déclarer le dossier d'upload et AddAttachment ?

Merci

<?php
include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Message.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Messagedesc.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Mail.class.php");



class Contact extends PluginsClassiques{

	var $id;
	var $nom;
	var $prenom;
	var $email;
	var $tel;
	var $sujet;
	var $message;
	var $date;
	var $lu;
	
	var $table = "contact";
	var $bddvars = array("id","nom","prenom","email","tel","sujet","message","date","lu");
	
	
	function Contact(){
		$this->PluginsClassiques();
	}

	function init(){
		$variable = new Variable();
		if(!$variable->charger("contact")){
			$emailcontact = new variable();
			$emailcontact->charger("emailcontact");
			
			$variable->nom = "contact";
			$variable->valeur = $emailcontact->valeur;
			$variable->add();
		}
	
				$message = new Message();
		if(!$message->charger("contact")){
			$message->nom = "contact";
						
			$messagedesc = new Messagedesc();
			$messagedesc->message = $message->add();
			$messagedesc->lang="1";
			$messagedesc->intitule = "contact";
			$messagedesc->titre = "__SUJET__";
			$messagedesc->description = "Bonjour,<br /> Un nouveau mail de contact vient de vous être adressé : <br />nom : __NOM__<br />prénom : __PRENOM__<br />email : __EMAIL__<br />telle : __TEL__<br/>date : __DATE__<br />message : __MESSAGE__";
			$messagedesc->descriptiontext = str_replace("<br />","\r\n",$messagedesc->description);
			$messagedesc->add();
		}
		
		$cnx = new Cnx();
		$query = "CREATE TABLE `contact` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nom` VARCHAR( 255 ) NOT NULL ,
`prenom` VARCHAR( 255 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`tel` VARCHAR( 30 ) NOT NULL ,
`sujet` VARCHAR( 255 ) NOT NULL ,
`message` TEXT NOT NULL ,
`date` DATETIME NOT NULL ,
`lu` INT NOT NULL
)";
		$resul = mysql_query($query,$cnx->link);
	}
	
	function charger($id){
		return $this->getVars("select * from $this->table where id=\"$id\"");
	}
	
	function action(){
		global $action;
		
		switch($action){
			case "contact":
				$this->crea_contact();
				break;
		}
		
		if(isset($_GET["errcontact"]) && $_GET["errcontact"] == 1){
			$this->formerreur();
		}
	}
	
	function demmarrage(){
		if(!isset($_SESSION["contact"])){
			$_SESSION["contact"] = new Contact();
		}
	}
	
	function formerreur(){
		global $res;
		if( $_SESSION['contact']->nom == "" ) $res = preg_replace("/\#NOM\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#NOM\[[^]]*\]/", "", $res);
	 	
	 	if( $_SESSION['contact']->prenom == "" ) $res = preg_replace("/\#PRENOM\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#PRENOM\[[^]]*\]/", "", $res);
	 	
	 	if( $_SESSION['contact']->email == "" ) $res = preg_replace("/\#EMAIL\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#EMAIL\[[^]]*\]/", "", $res);
	 	
	 	if( $_SESSION['contact']->tel == "" ) $res = preg_replace("/\#TEL\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#TEL\[[^]]*\]/", "", $res);
	 	
	 	if( $_SESSION['contact']->sujet == "" ) $res = preg_replace("/\#SUJET\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#SUJET\[[^]]*\]/", "", $res);
	 	
	 	if( $_SESSION['contact']->message == "" ) $res = preg_replace("/\#MESSAGE\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#MESSAGE\[[^]]*\]/", "", $res);
		
		if( $_SESSION['contact']->message == "" ) $res = preg_replace("/\#DATER\[([^]]*)\]/", "\\1", $res);
	 	else $res = preg_replace("/\#DATER\[[^]]*\]/", "", $res);
	 	
	 	$res = str_replace("#NOM",$_SESSION["contact"]->nom,$res);
	 	$res = str_replace("#PRENOM",$_SESSION["contact"]->prenom,$res);
	 	$res = str_replace("#EMAIL",$_SESSION["contact"]->email,$res);
	 	$res = str_replace("#TEL",$_SESSION["contact"]->tel,$res);
	 	$res = str_replace("#SUJET",$_SESSION["contact"]->sujet,$res);
		$res = str_replace("#DATER",$_SESSION["contact"]->dateR,$res);
	 	$res = str_replace("#MESSAGE",$_SESSION["contact"]->message,$res);
	}
	
	function crea_contact(){
		global $obligenom, $obligeprenom, $obligetel, $obligesujet, $obligemessage;
		$contact = new Contact();
		$contact->nom = strip_tags($_POST["nom"]);
		$contact->prenom = strip_tags($_POST["prenom"]);
		if( preg_match("/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z.]+$/",$_POST["email"])) $contact->email = strip_tags($_POST["email"]);
		$contact->tel = strip_tags($_POST["tel"]);
		$contact->sujet = strip_tags($_POST["sujet"]);
		$contact->message = strip_tags($_POST["message"]);
		$contact->dater = strip_tags($_POST["dater"]);
		
		$obligeok = 1;
		
		if($obligenom && $contact->nom == "") $obligeok = 0;
		if($obligeprenom && $contact->prenom == "") $obligeok = 0;
		if($obligetel && $contact->tel == "") $obligeok  =0;
		if($obligesujet && $contact->sujet == "") $obligeok = 0;
		if($obligemessage && $contact->message == "") $obligeok = 0;
		if($contact->email == "") $obligeok = 0;
		
		if(!$obligeok){
			$_SESSION["contact"] = $contact;
			redirige("contacterr.php?errcontact=1");
		}
		else{
			$contact->date = date("Y-m-d H:i:s");
			$contact->lu = 0;
			$contact->add();
			$this->envoimessage($contact);
		}
	}
	
	
	function envoimessage($contact){
		
		$message = new Message();
		$message->charger("contact");
		
		$messagedesc = new Messagedesc();
		$messagedesc->charger($message->id);
		
		$email = new Variable();
		$email->charger("contact");
		
		$nomsite = new Variable();
		$nomsite->charger("nomsite");
		
		$mail = new Mail();
		$mail->IsMail();
		$mail->FromName = $contact->nom;
		$mail->From = $contact->email;
		$mail->Subject = $this->substitmail($messagedesc->titre,$contact);
		$mail->MsgHTML($this->substitmail($messagedesc->description,$contact));
		$mail->AltBody = $this->substitmail($messagedesc->descriptiontext,$contact);
		$mail->AddAddress($email->valeur,$nomsite->valeur);
		$mail->send();
	    
		redirige($urlsite->valeur ." merci2.php") ;
	}
	
	function substitmail($corps,$contact){
		$corps = str_replace("__SUJET__",$contact->sujet,$corps);
		$corps = str_replace("__NOM__",$contact->nom,$corps);
		$corps = str_replace("__PRENOM__",$contact->prenom,$corps);
		$corps = str_replace("__TEL__",$contact->tel,$corps);
		$corps = str_replace("__EMAIL__",$contact->email,$corps);
		$corps = str_replace("__MESSAGE__",$contact->message,$corps);
		$corps = str_replace("__DATER__",$contact->dater,$corps);
		
		return $corps;
	}
}



?>