fonction mail
Posté : 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 :
Merci de votre aide cela fait pas mal de temps que je cherche et je ne trouve pas de solution .
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");
?>