fonction mail

autocleanconcept
Invité n'ayant pas de compte PHPfrance

14 nov. 2006, 00:12

Bonsoir le forum,

je debute en php et j'ai un probleme, j'ai un script de newsletter sur mon site et je voudrait modifier mon code pour que quand une personne s'inscrit ou se desinscrit à la newsletter je reçoit un mail qui contiendrait l'action ( inscription ou desinscription ) et l'email de la personne qui s'insrcrit ou desinscrit .

je ne sait pas si cela est faisable et je n'ose pas trop toucher à mon code vu que pour l'instant il fonctionne bien .

Mon code est le suivant :

Code : Tout sélectionner

<? include("include/config.php"); include("include/lib/libconfig.php"); include("include/db/db_".$db_type.".inc.php"); include("include/interface.php"); include("include/lib/libnewsletter.php"); include("admin/include/function.php"); include("include/lib/class.phpmailer.php"); $conf = new config(); $conf->getConfig($hostname,$login ,$pass,$database, $table_global_config); include("include/lang/".$conf->language.".php"); $list_id = (!empty($_POST['list_id']) ? $_POST['list_id'] : ""); $list_id = (empty($list_id) && !empty($_GET['list_id']) ? $_GET['list_id'] : $list_id); $email_addr = (!empty($_POST['email_addr']) ? $_POST['email_addr'] : ""); $email_addr = (empty($email_addr) && !empty( $_GET['email_addr']) ? $_GET['email_addr'] : $email_addr); $op = (!empty($_POST['op']) ? $_POST['op'] : ""); $op = (empty($op) && !empty( $_GET['op']) ? $_GET['op'] : $op); $hash = (!empty($_POST['hash']) ? $_POST['hash'] : ""); $hash = (empty($hash) && !empty( $_GET['hash']) ? $_GET['hash'] : $hash); if($op == "leave" && !$conf->unsub_validation){ $op = "leave_direct"; } else if($op == "leave_direct" && $conf->unsub_validation){ $op = "leave"; } else if($op == "join" && !$conf->sub_validation){ $op = "join_direct"; } else if($op == "join_direct" && $conf->sub_validation){ $op = "join"; } if(isset($list_id) && !empty($list_id) && isValidNewsletter($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_listsconfig, $list_id) && isset($email_addr)){ switch($op) { case "join": html_header(translate("NEWSLETTER_TITLE")); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("SUBSCRIPTION_TITLE")."</div>"; echo "<div class='subcontent'>"; if(!$conf->mod_sub){ $add = addSubscriberTemp( $conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_temp , $list_id, $email_addr); $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); if(strlen($add) > 3){ $body = $news->subscription_body; $body.= "\n\n".translate("SUBSCRIPTION_MAIL_BODY").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_join&email_addr=$email_addr&hash=$add&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->subscription_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "<div align='center' class='success'>".translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE")."</div>"; } else if($add==0) echo "<div align='center' class='error'>".translate("SUBSCRIPTION_ALREADY_SUBSCRIBER")."</div>"; else echo "<div align='center' class='error'>".translate("ERROR_SQL2", MYSQL_ERROR())."</div>"; echo "<div align='center'><img src='img/puce.gif'> <a href='#' onclick='history.back()'>".translate("BACK")."</a></div>"; } else { $add = addSubscriberMod($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_sub , $list_id, $email_addr); if($add) echo "<div align='center' class='success'>".translate("Subscription requested recorded, waiting for moderation")."</div>"; else if($add==0) echo "<div align='center' class='error'>".translate("You are already a subscriber")."</div>"; else echo "<div align='center' class='error'>".translate("Error while SQL query")."</div>"; echo "<div align='center'><img src='img/puce.gif'> <a href='Newsletters.php'>".translate("Back")."</a></div>"; } echo "</div></div>"; html_footer(); break; case "leave": html_header(translate("NEWSLETTER_TITLE")); $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $hash = isValidSubscriber($conf->db_host,$conf->db_login ,$conf->db_pass,$conf->db_name, $conf->table_email, $list_id, $email_addr); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("UNSUBSCRIPTION_TITLE")."</div>"; echo "<div class='subcontent'>"; if($hash){ $body = $news->quit_body; $body.= "\n\n".translate("UNSUBSCRIPTION_MAIL_BODY")." :\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$hash&list_id=$list_id"; if(sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->quit_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass)) echo "<div align='center' class='success'>".translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE")."</div>"; else echo "<div align='center' class='error'>".translate("ERROR_SENDING_CONFIRM_MAIL")."</div>"; } else echo "<div align='center' class='error'>".translate("You are not a subscriber of this newsletter")."</div>"; echo "<div align='center'><img src='img/puce.gif'> <a href='Newsletters.php'>".translate("BACK")."</a></div>"; echo "</div></div>"; echo "</td></tr>"; table_footer(); page_footer(); html_footer(); break; case "confirm_join": html_header(translate("NEWSLETTER_TITLE")); $add= addSubscriber( $conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $conf->table_temp , $list_id, $email_addr,$hash); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("SUBSCRIPTION_CONFIRMATION")."</div>"; echo "<div class='subcontent'>"; if($add){ $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $body = $news->welcome_body; $body.= "\n\n".translate("SUBSCRIPTION_UNSUBSCRIBE_LINK").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$hash&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->welcome_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "<div align='center' class='success'>".translate("SUBSCRIPTION_FINISHED")."</div>"; } else if($add==-1) echo "<div align='center' class='error'>".translate("SUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."! </div>"; else echo "<div align='center' class='error'>".translate("ERROR_UNKNOWN")."</div>"; echo "</div></div>"; html_footer(); break; case "confirm_leave": html_header(translate("NEWSLETTER_TITLE")); $rm=removeSubscriber($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr,$hash); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("UNSUBSCRIPTION_CONFIRMATION")."</div>"; echo "<div class='subcontent'>"; if($rm==1) echo "<div align='center' class='success'>".translate("UNSUBSCRIPTION_FINISHED").".</div>"; else if($rm==-1) echo "<div align='center' class='error'>".translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."</div>"; else echo "<div align='center' class='error'>".translate("ERROR_UNKNOWN")."</div>"; echo "</div></div>"; html_footer(); break; case "join_direct": if(!$conf->sub_validation){ html_header(translate("NEWSLETTER_TITLE")); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("SUBSCRIPTION_TITLE")."</div>"; echo "<div class='subcontent'>"; $add = addSubscriberDirect($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr); /* $add not -1 nor -2 TODO:need to be rewritten */ if(strlen($add) > 2){ $news = new Newsletter(); $news->getConfig($hostname,$login ,$pass,$database, $list_id,$conf->table_listsconfig); $body = $news->welcome_body; $body.= "\n\n".translate("UNSUBSCRIPTION_MAIL_BODY").":\n"; $body.= $conf->base_url.$conf->path."subscription.php?op=confirm_leave&email_addr=$email_addr&hash=$add&list_id=$list_id"; $mail=sendEmail($conf->sending_method,$email_addr,$news->from, $news->from_name,$news->welcome_subject,$body, $conf->smtp_auth, $conf->smtp_host, $conf->smtp_login, $conf->smtp_pass); echo "<div align='center' class='success'>".translate("SUBSCRIPTION_FINISHED")."</div>"; } else if($add==-1){ echo "<div align='center' class='error'>".translate("SUBSCRIPTION_ALREADY_SUBSCRIBER")."</div>"; } else { echo "<div align='center' class='error'>".translate("ERROR_UNKNOWN")."</div>"; } echo "<div align='center'><img src='img/puce.gif'> <a href='#' onclick='history.back()'>".translate("BACK")."</a></div>"; echo "</div></div>"; html_footer(); } else header("Location:Newsletters.php"); break; case "leave_direct": if(!$conf->unsub_validation){ html_header(translate("NEWSLETTER_TITLE")); $rm=removeSubscriberDirect($conf->db_host, $conf->db_login, $conf->db_pass, $conf->db_name, $conf->table_email, $list_id, $email_addr); echo "<div class='subsection2'>"; echo "<div class='subtitle'>".translate("UNSUBSCRIPTION_TITLE")."</div>"; echo "<div class='subcontent'>"; if($rm==1) echo "<div align='center' class='success'>".translate("UNSUBSCRIPTION_FINISHED").".</div>"; else if($rm==-1) echo "<div align='center' class='error'>".translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS")."</div>"; else echo "<div align='center' class='error'>".translate("ERROR_UNKNOWN")."</div>"; echo "<div align='center'><img src='img/puce.gif'> <a href='Newsletters.php'>".translate("BACK")."</a></div></div></div>"; html_footer(); } else header("Location:Newsletters.php"); break; default: header("Location:Newsletters.php"); break; } } else header("Location:Newsletters.php"); ?>
Merci de votre aide cela fait pas mal de temps que je cherche et je ne trouve pas de solution .

Mammouth du PHP | 1776 Messages

14 nov. 2006, 00:15

quelques tests et utiliser la fonction mail implementée :wink:

autocleanconcept
Invité n'ayant pas de compte PHPfrance

14 nov. 2006, 00:24

je veut bien faire quelques tests et utiliser la fonction mail implementée mais je m'y connait trop peu pour comprendre comment faire . je me doute que pour des passionné comme vous cela coule de source et je vous envie souvent mais pour moi , c'est du chinois tout ça .

le code ci dessus ne vient pas de mon inspiration , c'est un connaiseur qui l'a mi sur le net pour tout le monde et j'ai essayer de l'installer et il fonctionne , mais de la à le modifier , je vais tout bouzier .

autocleanconcept
Invité n'ayant pas de compte PHPfrance

14 nov. 2006, 00:58

Apres quelques recherche sur le net , je suis tombé la dessus .

ce script fonctionne mais je ne sait pas comment le placer dans mon code du haut pour assembler les 2 et je ne voit pas comment faire pour pour avoir l'email de la personne qui s'abonne / desabonne en $message =


Code : Tout sélectionner

<?php $to = '[email protected]'; $subject = 'nouvelle insription'; $message = 'Bonjour !'; $headers = 'From: Newsletter' . "\r\n" . 'Reply-To: olivier' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>