Go to the documentation of this file.
30 if (!defined(
'NOLOGIN')) {
31 define(
'NOLOGIN',
'1');
33 if (!defined(
'NOCSRFCHECK')) {
34 define(
'NOCSRFCHECK',
'1');
36 if (!defined(
'NOBROWSERNOTIF')) {
37 define(
'NOBROWSERNOTIF',
'1');
39 if (!defined(
'NOREQUIREMENU')) {
40 define(
'NOREQUIREMENU',
'1');
42 if (!defined(
'NOIPCHECK')) {
43 define(
'NOIPCHECK',
'1');
45 if (!defined(
"NOSESSION")) {
46 define(
"NOSESSION",
'1');
67 require
'../../main.inc.php';
68 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
70 global $user, $conf, $langs;
72 $langs->loadLangs(array(
"main",
"mails"));
77 $unsuscrib =
GETPOST(
'unsuscrib');
78 $securitykey =
GETPOST(
'securitykey');
85 dol_syslog(
"public/emailing/mailing-read.php : tag=".$tag.
" securitykey=".$securitykey, LOG_DEBUG);
87 if ($securitykey != $conf->global->MAILING_EMAIL_UNSUBSCRIBE_KEY) {
88 print
'Bad security key value.';
93 if (!empty($tag) && ($unsuscrib ==
'1')) {
94 dol_syslog(
"public/emailing/mailing-unsubscribe.php : Launch unsubscribe requests", LOG_DEBUG);
96 $sql =
"SELECT mc.rowid, mc.email, mc.statut, m.entity";
97 $sql .=
" FROM ".MAIN_DB_PREFIX.
"mailing_cibles as mc, ".MAIN_DB_PREFIX.
"mailing as m";
98 $sql .=
" WHERE mc.fk_mailing = m.rowid AND mc.tag='".$db->escape($tag).
"'";
100 $resql = $db->query($sql);
105 $obj = $db->fetch_object(
$resql);
108 print
'Email target not valid. Operation canceled.';
111 if (empty($obj->email)) {
112 print
'Email target not valid. Operation canceled.';
115 if ($obj->statut == 3) {
116 print
'Email target already set to unsubscribe. Operation canceled.';
130 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"mailing_cibles SET statut=".((int) $statut).
" WHERE tag = '".$db->escape($tag).
"'";
132 $resql = $db->query($sql);
152 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"mailing_unsubscribe (date_creat, entity, email, unsubscribegroup, ip) VALUES ('".$db->idate(
dol_now()).
"', ".((int) $obj->entity).
", '".$db->escape($obj->email).
"', '', '".$db->escape(
getUserRemoteIP()).
"')";
154 $resql = $db->query($sql);
158 header(
"Content-type: text/html; charset=".$conf->file->character_set_client);
161 header(
"X-Content-Type-Options: nosniff");
162 header(
"X-Frame-Options: SAMEORIGIN");
164 print
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
168 print
'<meta name="robots" content="noindex,nofollow">'.
"\n";
169 print
'<meta name="keywords" content="dolibarr,emailing">'.
"\n";
170 print
'<meta name="description" content="Dolibarr EMailing unsubcribe page">'.
"\n";
171 print
"<title>".$langs->trans(
"MailUnsubcribe").
"</title>\n";
172 print
'<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.$conf->css.
'?lang='.$langs->defaultlang.
'">'.
"\n";
173 print
'<style type="text/css">';
174 print
'.CTableRow1 { margin: 1px; padding: 3px; font: 12px verdana,arial; background: #e6E6eE; color: #000000; -moz-border-radius-topleft:6px; -moz-border-radius-topright:6px; -moz-border-radius-bottomleft:6px; -moz-border-radius-bottomright:6px;}';
175 print
'.CTableRow2 { margin: 1px; padding: 3px; font: 12px verdana,arial; background: #FFFFFF; color: #000000; -moz-border-radius-topleft:6px; -moz-border-radius-topright:6px; -moz-border-radius-bottomleft:6px; -moz-border-radius-bottomright:6px;}';
179 print
'<body style="margin: 20px;">'.
"\n";
180 print
'<table><tr><td style="text_align:center;">';
181 print $langs->trans(
"YourMailUnsubcribeOK", $obj->email).
"<br>\n";
182 print
'</td></tr></table>';
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
if(!defined('NOLOGIN')) if(!defined('NOCSRFCHECK')) if(!defined('NOBROWSERNOTIF')) if(!defined('NOREQUIREMENU')) if(!defined('NOIPCHECK')) if(!defined("NOSESSION")) llxHeader()
Header empty.
dol_now($mode='auto')
Return date for now.
if(isModEnabled('facture') &&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->rights->fournisseur->facture->lire)||(isModEnabled('supplier_invoice') && $user->rights->supplier_invoice->lire)) if(isModEnabled('don') &&!empty($user->rights->don->lire)) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
getUserRemoteIP()
Return the IP of remote user.