Comment éviter les spams () dans php
- diyath
- Newbie


- Inscription: Oct 13, 2010
- Messages: 5
- Status: Offline
J'utilise cette classe envoyer du courrier, mais mails sont partis comme spam
PHP Code: [ Select ]
<?php
/***
Email addresses can validate using email_validation(...) method.
This class is use to send mails to valid email address(es)
by calling methods as following order,
1) set_header(.....)
2) set_body(...)
3) send_mail(.....)
***/
class GenerateMails{
private $headers = array();
private $recipients;
private $contenttype;
private $subject;
private $email_msg;
private $hdr;
public $msg;
/* This function use for validate email address(es).
para :
$email_addrses = This can be list of email addresses seperated by commas
or email addresses array
return :
true/false
*/
public function email_validation($email_addrses)
{
$validate = true;
if(!is_array($email_addrses))
{
$email_arry = explode(',',$email_addrses);
$validate=$this->chk_email_arry($email_arry);
}
else
{
$validate=$this->chk_email_arry($email_addrses);
}
return $validate;
}
/* This function use for generate msg for email address(es)
para :
$email_arry = Email array
return :
true/false
*/
private function chk_email_arry($email_arry)
{
$rtn_val=true;
foreach($email_arry as $val)
{
if(!filter_var($val,FILTER_VALIDATE_EMAIL))
{
$this->msg .= $val.' - Invalid Email Address.<br />';
$rtn_val=false;
}
}
return $rtn_val;
}
/* This function use to set sender email & name
para :
$email = sender email
$name = sender name
*/
private function from($email,$name)
{
@ini_set('sendmail_from','test');
$this->headers[] = 'From: '.$email.' <'.$name.'>';
}
/* This function use to set reply to email & name
para :
$email = Reply email
$name = Reply name
*/
private function reply_to($rplyto_email,$rplyto_name)
{
$this->headers[] = 'Reply-To: '.$rplyto_email.' <'.$rplyto_name.'>';
}
/* This function is use for add reciepients.
para :
$recipient_list = recipient list should separate by comma.
*/
private function add_recipient($recipient_list)
{
$this->recipients =$recipient_list;
}
/* This function is use for add CC.
para :
$cc_address_list = cc address list should separate by comma.
*/
private function set_cc($cc_address_list)
{
$this->headers[] = "CC: ".$cc_address_list;
}
/* This function is use for add BCC.
para :
$bcc_address_list = BCC address list should separate by comma.
*/
private function set_bcc($bcc_address_list)
{
$this->headers[] = "BCC: ".$bcc_address_list;
}
/* This function use to set header values.
para :
$header_type = normal - without attachment
attachment - with attachment
$ishtml = true - content type is HTML
false - content is plain text
*/
public function mail_header($header_type, $ishtml = true)
{
$this->headers[] = "MIME-Version: 1.0";
switch($header_type)
{
case "normal":
if ($ishtml) {
$this->contenttype = "text/html";
} else {
$this->contenttype = "text/plain";
}
$this->headers[] = "Content-type: ".$this->contenttype."; charset=UTF-8";
break;
case "attachment":
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$this->headers[] = "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
break;
}
}
/* This function use to set priorities
*/
private function priority()
{
$this->headers[] = "X-Priority: 3";
$this->headers[] = "X-Mailer: php";
}
/* This function use to set mail subject.
*/
private function set_subject($subject)
{
$this->subject = $subject;
}
/* This function use to set mail attachmant(s)
para :
$attfile = file name(s) array
*/
private function set_attachment($attfile)
{
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// preparing attachments
$file = fopen($attfile,"rb");
$data = fread($file,filesize($attfile));
fclose($file);
$data = chunk_split(base64_encode($data));
$message = "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$attfile\"\n" .
"Content-Disposition: attachment;\n" . " filename=\"$attfile\"\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
$message .= "--{$mime_boundary}\n";
return $message;
}
/* This function use to set mail header
para :
$header_type = normal - without attachment
attachment - with attachment
$ishtml = true - content type is HTML
false - content is plain text
$from_email = from email address
$from_name = from name
$recipient_list = recipient email(s) seperated by commas
$cc_address_list = CC email(s) seperated by commas
$bcc_address_list = BCC email(s) seperated by commas
$subject = email subject
*/
public function set_header($header_type, $ishtml=true, $from_email, $from_name, $rplyto_email, $rplyto_name,$recipient_list, $cc_address_list, $bcc_address_list, $subject)
{
$this->mail_header($header_type, $ishtml=true);
$this->priority();
$this->from($from_email,$from_name);
$this->reply_to($rplyto_email,$rplyto_name);
$this->add_recipient($recipient_list);
$this->set_cc($cc_address_list);
$this->set_bcc($bcc_address_list);
$this->set_subject($subject);
}
/* This function use to set mail body
para :
$email_msg = massege
$email_msg_type = normal - without attachment
attachment - with attachment
$attfile = file name(s) array
*/
public function set_body($email_msg,$email_msg_type,$attfile)
{
switch($email_msg_type)
{
case "normal":
$this->email_msg = wordwrap($email_msg,70);
break;
case "attachment":
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$this->email_msg = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_msg . "\n\n";
$this->email_msg .= "--{$mime_boundary}\n";
if(is_array($attfile))
{
for($x=0;$x<count($attfile);$x++)
{
if(file_exists($attfile[$x]))
{
$this->email_msg .= $this->set_attachment($attfile[$x]);
}
else
{
$this->email_msg .= ' No Data found for the file '.$attfile[$x]."--{$mime_boundary}\n";
}
}
}
/* else
{
$this->email_msg = $this->set_attachment($attfile);
}
*/
break;
}
$this->email_msg = wordwrap($this->email_msg,70);
}
/* This function use to send mail
return :
treu/false
*/
public function send_mail()
{
$this->hdr = implode("\r\n",$this->headers);
unset($this->headers);
return mail($this->recipients, $this->subject, $this->email_msg, $this->hdr);
}
}
?>
/***
Email addresses can validate using email_validation(...) method.
This class is use to send mails to valid email address(es)
by calling methods as following order,
1) set_header(.....)
2) set_body(...)
3) send_mail(.....)
***/
class GenerateMails{
private $headers = array();
private $recipients;
private $contenttype;
private $subject;
private $email_msg;
private $hdr;
public $msg;
/* This function use for validate email address(es).
para :
$email_addrses = This can be list of email addresses seperated by commas
or email addresses array
return :
true/false
*/
public function email_validation($email_addrses)
{
$validate = true;
if(!is_array($email_addrses))
{
$email_arry = explode(',',$email_addrses);
$validate=$this->chk_email_arry($email_arry);
}
else
{
$validate=$this->chk_email_arry($email_addrses);
}
return $validate;
}
/* This function use for generate msg for email address(es)
para :
$email_arry = Email array
return :
true/false
*/
private function chk_email_arry($email_arry)
{
$rtn_val=true;
foreach($email_arry as $val)
{
if(!filter_var($val,FILTER_VALIDATE_EMAIL))
{
$this->msg .= $val.' - Invalid Email Address.<br />';
$rtn_val=false;
}
}
return $rtn_val;
}
/* This function use to set sender email & name
para :
$email = sender email
$name = sender name
*/
private function from($email,$name)
{
@ini_set('sendmail_from','test');
$this->headers[] = 'From: '.$email.' <'.$name.'>';
}
/* This function use to set reply to email & name
para :
$email = Reply email
$name = Reply name
*/
private function reply_to($rplyto_email,$rplyto_name)
{
$this->headers[] = 'Reply-To: '.$rplyto_email.' <'.$rplyto_name.'>';
}
/* This function is use for add reciepients.
para :
$recipient_list = recipient list should separate by comma.
*/
private function add_recipient($recipient_list)
{
$this->recipients =$recipient_list;
}
/* This function is use for add CC.
para :
$cc_address_list = cc address list should separate by comma.
*/
private function set_cc($cc_address_list)
{
$this->headers[] = "CC: ".$cc_address_list;
}
/* This function is use for add BCC.
para :
$bcc_address_list = BCC address list should separate by comma.
*/
private function set_bcc($bcc_address_list)
{
$this->headers[] = "BCC: ".$bcc_address_list;
}
/* This function use to set header values.
para :
$header_type = normal - without attachment
attachment - with attachment
$ishtml = true - content type is HTML
false - content is plain text
*/
public function mail_header($header_type, $ishtml = true)
{
$this->headers[] = "MIME-Version: 1.0";
switch($header_type)
{
case "normal":
if ($ishtml) {
$this->contenttype = "text/html";
} else {
$this->contenttype = "text/plain";
}
$this->headers[] = "Content-type: ".$this->contenttype."; charset=UTF-8";
break;
case "attachment":
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$this->headers[] = "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
break;
}
}
/* This function use to set priorities
*/
private function priority()
{
$this->headers[] = "X-Priority: 3";
$this->headers[] = "X-Mailer: php";
}
/* This function use to set mail subject.
*/
private function set_subject($subject)
{
$this->subject = $subject;
}
/* This function use to set mail attachmant(s)
para :
$attfile = file name(s) array
*/
private function set_attachment($attfile)
{
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// preparing attachments
$file = fopen($attfile,"rb");
$data = fread($file,filesize($attfile));
fclose($file);
$data = chunk_split(base64_encode($data));
$message = "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$attfile\"\n" .
"Content-Disposition: attachment;\n" . " filename=\"$attfile\"\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
$message .= "--{$mime_boundary}\n";
return $message;
}
/* This function use to set mail header
para :
$header_type = normal - without attachment
attachment - with attachment
$ishtml = true - content type is HTML
false - content is plain text
$from_email = from email address
$from_name = from name
$recipient_list = recipient email(s) seperated by commas
$cc_address_list = CC email(s) seperated by commas
$bcc_address_list = BCC email(s) seperated by commas
$subject = email subject
*/
public function set_header($header_type, $ishtml=true, $from_email, $from_name, $rplyto_email, $rplyto_name,$recipient_list, $cc_address_list, $bcc_address_list, $subject)
{
$this->mail_header($header_type, $ishtml=true);
$this->priority();
$this->from($from_email,$from_name);
$this->reply_to($rplyto_email,$rplyto_name);
$this->add_recipient($recipient_list);
$this->set_cc($cc_address_list);
$this->set_bcc($bcc_address_list);
$this->set_subject($subject);
}
/* This function use to set mail body
para :
$email_msg = massege
$email_msg_type = normal - without attachment
attachment - with attachment
$attfile = file name(s) array
*/
public function set_body($email_msg,$email_msg_type,$attfile)
{
switch($email_msg_type)
{
case "normal":
$this->email_msg = wordwrap($email_msg,70);
break;
case "attachment":
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$this->email_msg = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_msg . "\n\n";
$this->email_msg .= "--{$mime_boundary}\n";
if(is_array($attfile))
{
for($x=0;$x<count($attfile);$x++)
{
if(file_exists($attfile[$x]))
{
$this->email_msg .= $this->set_attachment($attfile[$x]);
}
else
{
$this->email_msg .= ' No Data found for the file '.$attfile[$x]."--{$mime_boundary}\n";
}
}
}
/* else
{
$this->email_msg = $this->set_attachment($attfile);
}
*/
break;
}
$this->email_msg = wordwrap($this->email_msg,70);
}
/* This function use to send mail
return :
treu/false
*/
public function send_mail()
{
$this->hdr = implode("\r\n",$this->headers);
unset($this->headers);
return mail($this->recipients, $this->subject, $this->email_msg, $this->hdr);
}
}
?>
- <?php
- /***
- Email addresses can validate using email_validation(...) method.
- This class is use to send mails to valid email address(es)
- by calling methods as following order,
- 1) set_header(.....)
- 2) set_body(...)
- 3) send_mail(.....)
- ***/
- class GenerateMails{
- private $headers = array();
- private $recipients;
- private $contenttype;
- private $subject;
- private $email_msg;
- private $hdr;
- public $msg;
- /* This function use for validate email address(es).
- para :
- $email_addrses = This can be list of email addresses seperated by commas
- or email addresses array
- return :
- true/false
- */
- public function email_validation($email_addrses)
- {
- $validate = true;
- if(!is_array($email_addrses))
- {
- $email_arry = explode(',',$email_addrses);
- $validate=$this->chk_email_arry($email_arry);
- }
- else
- {
- $validate=$this->chk_email_arry($email_addrses);
- }
- return $validate;
- }
- /* This function use for generate msg for email address(es)
- para :
- $email_arry = Email array
- return :
- true/false
- */
- private function chk_email_arry($email_arry)
- {
- $rtn_val=true;
- foreach($email_arry as $val)
- {
- if(!filter_var($val,FILTER_VALIDATE_EMAIL))
- {
- $this->msg .= $val.' - Invalid Email Address.<br />';
- $rtn_val=false;
- }
- }
- return $rtn_val;
- }
- /* This function use to set sender email & name
- para :
- $email = sender email
- $name = sender name
- */
- private function from($email,$name)
- {
- @ini_set('sendmail_from','test');
- $this->headers[] = 'From: '.$email.' <'.$name.'>';
- }
- /* This function use to set reply to email & name
- para :
- $email = Reply email
- $name = Reply name
- */
- private function reply_to($rplyto_email,$rplyto_name)
- {
- $this->headers[] = 'Reply-To: '.$rplyto_email.' <'.$rplyto_name.'>';
- }
- /* This function is use for add reciepients.
- para :
- $recipient_list = recipient list should separate by comma.
- */
- private function add_recipient($recipient_list)
- {
- $this->recipients =$recipient_list;
- }
- /* This function is use for add CC.
- para :
- $cc_address_list = cc address list should separate by comma.
- */
- private function set_cc($cc_address_list)
- {
- $this->headers[] = "CC: ".$cc_address_list;
- }
- /* This function is use for add BCC.
- para :
- $bcc_address_list = BCC address list should separate by comma.
- */
- private function set_bcc($bcc_address_list)
- {
- $this->headers[] = "BCC: ".$bcc_address_list;
- }
- /* This function use to set header values.
- para :
- $header_type = normal - without attachment
- attachment - with attachment
- $ishtml = true - content type is HTML
- false - content is plain text
- */
- public function mail_header($header_type, $ishtml = true)
- {
- $this->headers[] = "MIME-Version: 1.0";
- switch($header_type)
- {
- case "normal":
- if ($ishtml) {
- $this->contenttype = "text/html";
- } else {
- $this->contenttype = "text/plain";
- }
- $this->headers[] = "Content-type: ".$this->contenttype."; charset=UTF-8";
- break;
- case "attachment":
- $semi_rand = md5(time());
- $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
- $this->headers[] = "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
- break;
- }
- }
- /* This function use to set priorities
- */
- private function priority()
- {
- $this->headers[] = "X-Priority: 3";
- $this->headers[] = "X-Mailer: php";
- }
- /* This function use to set mail subject.
- */
- private function set_subject($subject)
- {
- $this->subject = $subject;
- }
- /* This function use to set mail attachmant(s)
- para :
- $attfile = file name(s) array
- */
- private function set_attachment($attfile)
- {
- $semi_rand = md5(time());
- $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
- // preparing attachments
- $file = fopen($attfile,"rb");
- $data = fread($file,filesize($attfile));
- fclose($file);
- $data = chunk_split(base64_encode($data));
- $message = "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$attfile\"\n" .
- "Content-Disposition: attachment;\n" . " filename=\"$attfile\"\n" .
- "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
- $message .= "--{$mime_boundary}\n";
- return $message;
- }
- /* This function use to set mail header
- para :
- $header_type = normal - without attachment
- attachment - with attachment
- $ishtml = true - content type is HTML
- false - content is plain text
- $from_email = from email address
- $from_name = from name
- $recipient_list = recipient email(s) seperated by commas
- $cc_address_list = CC email(s) seperated by commas
- $bcc_address_list = BCC email(s) seperated by commas
- $subject = email subject
- */
- public function set_header($header_type, $ishtml=true, $from_email, $from_name, $rplyto_email, $rplyto_name,$recipient_list, $cc_address_list, $bcc_address_list, $subject)
- {
- $this->mail_header($header_type, $ishtml=true);
- $this->priority();
- $this->from($from_email,$from_name);
- $this->reply_to($rplyto_email,$rplyto_name);
- $this->add_recipient($recipient_list);
- $this->set_cc($cc_address_list);
- $this->set_bcc($bcc_address_list);
- $this->set_subject($subject);
- }
- /* This function use to set mail body
- para :
- $email_msg = massege
- $email_msg_type = normal - without attachment
- attachment - with attachment
- $attfile = file name(s) array
- */
- public function set_body($email_msg,$email_msg_type,$attfile)
- {
- switch($email_msg_type)
- {
- case "normal":
- $this->email_msg = wordwrap($email_msg,70);
- break;
- case "attachment":
- $semi_rand = md5(time());
- $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
- $this->email_msg = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $email_msg . "\n\n";
- $this->email_msg .= "--{$mime_boundary}\n";
- if(is_array($attfile))
- {
- for($x=0;$x<count($attfile);$x++)
- {
- if(file_exists($attfile[$x]))
- {
- $this->email_msg .= $this->set_attachment($attfile[$x]);
- }
- else
- {
- $this->email_msg .= ' No Data found for the file '.$attfile[$x]."--{$mime_boundary}\n";
- }
- }
- }
- /* else
- {
- $this->email_msg = $this->set_attachment($attfile);
- }
- */
- break;
- }
- $this->email_msg = wordwrap($this->email_msg,70);
- }
- /* This function use to send mail
- return :
- treu/false
- */
- public function send_mail()
- {
- $this->hdr = implode("\r\n",$this->headers);
- unset($this->headers);
- return mail($this->recipients, $this->subject, $this->email_msg, $this->hdr);
- }
- }
- ?>
Moderator Remark: added [code] tags
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Octobre 22nd, 2010, 10:29 pm
- Bigwebmaster
- Site Admin


- Inscription: Déc 20, 2002
- Messages: 8922
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
Quand vous dites que les mails sont "partis comme spam", entendez-vous l'e-mail n'est même pas capable d'être envoyé comme il revient avec une erreur? Ou ne l'e-mail sont envoyés à votre destination, mais l'e-mail se profile dans le dossier spam ou en vrac? Pourriez-vous être plus précis ce que vous entendez?
Ozzu Hosting - Want your website on a fast server like Ozzu?
- diyath
- Newbie


- Inscription: Oct 13, 2010
- Messages: 5
- Status: Offline
- SpooF
- ٩๏̯͡๏۶


- Inscription: Mai 22, 2004
- Messages: 3415
- Loc: Richland, WA
- Status: Offline
Cela pourrait être un certain nombre de choses.
La première chose que je puisse faire, c'est vous assurer que votre envoi en-têtes appropriés ainsi que vos e-mails. La prochaine chose serait de vérifier si votre adresse IP du serveur a été la liste noire.
http://whatismyipaddress.com/blacklist-check
La première chose que je puisse faire, c'est vous assurer que votre envoi en-têtes appropriés ainsi que vos e-mails. La prochaine chose serait de vérifier si votre adresse IP du serveur a été la liste noire.
http://whatismyipaddress.com/blacklist-check
#define NULL (::rand() % 2)
- Bigwebmaster
- Site Admin


- Inscription: Déc 20, 2002
- Messages: 8922
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
Pour l'e-mail à votre destination, où on le voit maintenant comme spam, je dirais regardant les en-têtes d'e-mail pour voir si quelque chose se distingue comme les chèques SPF a échoué, ou toute autre balise qui pourrait expliquer pourquoi son être étiquetés comme spam. Aussi je voudrais vérifier toutes les adresses IP dans les en-têtes en plus de votre propre pour voir si elles sont sur la liste noire comme frauduleux mentionnés. Parfois, lorsque vous envoyez un e-mail à elles passer par un serveur SMTP qui est blacklisté et c'est pourquoi je voudrais vérifier plusieurs adresses IP que seulement la vôtre.
Ozzu Hosting - Want your website on a fast server like Ozzu?
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 5 messages
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 121 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
