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