emailcrypto
emailcrypto
SYNOPSIS
emailcrypto($text, $tag, $to, $subject, $sender=false)
DESCRIPTION
emailcrypto
envoie le message $text
avec en pièce jointe un cryptogramme de $tag
à $to
avec le sujet $subject
de la part de $sender
.
$tag
est une courte chaîne de caractères, typiquement un mot de passe.
CODE
- require_once 'strtag.php';
Charge la fonction strtag
.
- function emailcrypto($text, $tag, $to, $subject, $sender=false) {
- global $signature, $mailer, $webmaster;
- if (!$sender) {
- $sender = $webmaster;
- }
emailcrypto
a 4 ou 5 arguments : un message, un texte court à joindre au message dans un cryptogramme, l'adresse d'email du destinataire du message et l'adresse d'email de l'expéditeur du message.
Si l'argument $sender
vaut false
, il est initialisé à la valeur de $webmaster
Les variables globales $signature
, $mailer
et $webmaster
sont des paramètres de configuration définis dans le fichier includes/config.inc.
- $img=strtag($tag);
- ob_start();
- imagepng($img);
- imagedestroy($img);
- $imgdata=ob_get_contents();
- ob_end_clean();
- $sep=md5(uniqid('sep'));
- $data=chunk_split(base64_encode($imgdata));
Fabrique un cryptogramme à partir de la chaine de caractères $tag
avec strtag
puis convertit l'image obtenue en PNG. Le PNG est ensuite encodé en base64.
- $headers = <<<_SEP_
- From: $sender
- Return-Path: $sender
- Content-Type: multipart/mixed; boundary="$sep"
- X-Mailer: $mailer
- _SEP_;
Génère l'en-tête MIME de l'email avec les champs From:
, Return-Path:
, Content-Type:
et X-Mailer:
avec le paramètre $sender
et la variable globale $mailer
.
Le champ Content-Type:
indique que le message est constitué de 2 parties, le texte de l'email et le cryptogramme en pièce jointe, séparées par $sep
.
- $body = '';
- if ($text) {
- $body .= <<<_SEP_
- --$sep
- Content-Type: text/plain; charset=utf-8
- $text
- $signature
- _SEP_;
- }
- $body .= <<<_SEP_
- --$sep
- Content-Type: image/png; name="crypto.png"
- Content-Transfer-Encoding: base64
- Content-Disposition: inline; filename="crypto.png"
- $data
- --$sep--
- _SEP_;
- return @mail($to, $subject, $body, $headers);
- }
Fabrique le corps de l'email, d'abord le texte puis l'image en pièce jointe, puis envoie l'email avec la fonction PHP mail
.
Commentaires