PHP mail
Envoyer des emails avec PHP
aka: sendmail, mail, mail(), php mail, mail php
formulaire pour envoyer un email avec php
<?php $from=$_POST['Email']; $message=$_POST['message']; if($Email&&strlen($Email)>0&&$message&&strlen($message)>0) { //donnees saisies, on envoie le mal $from ="mapomm@web.org"; $text = "coucou!"; $text .= "\nzdrastvoui!"; $to="yourpoire@web.org"; $obj="email test with php"; $headers ='From: ' .$from ."\n"; $headers .='Reply-To: ' .$from ."\n"; $headers.='Bcc: ' .$bcc ."\n"; $headers .='Content-Type: text/plain; charset="iso-8859-1"'.'\n'; $couriel=mail($to, $obj , $txt, $headers); if($couriel) { #echo "The mail has been sent from $from to $to"; echo "Merci de votre message nous tâcherons de vous répondre le plus tôt possible"; } else { echo "Il y a eu un problème lors de l'envoi du mail, merci de contacter <a href=\"mailto:" .$to ."?subject=" .$obj ."\">" .$to ."</a>"; } exit; } else { //rien de saisi, on affiche le formulaire ?> <form method="post"> Votre adresse email : <input name="Email" type="text" /><br /> Votre message : <textarea name="message" cols="50" rows="10"></textarea><br /> <input type="reset" name="Annuler" /><br /> <input type="submit" name="Envoyer" /> </form> <? } //fin affichage formulaire ?>
envoyer un email au format HTML
source: http://www.asp-php.net/ressources/bouts_de_code.aspx?id=35
<?php $Destinataire = "nom@domaine.com"; $Sujet = "Sujet de votre mail"; $From = "From:nom@domaine.com\n"; $From .= "MIME-version: 1.0\n"; $From .= "Content-type: text/html; charset= iso-8859-1\n"; $Message = "<b>Texte en Gras</b><u>Texte Souligné</u><i>Texte en Italique</i>"; mail($Destinataire,$Sujet,$Message,$From); ?>
Envoyer un mail avec la commande mailto:
Astuce: le retour chariot (saut de ligne, <br>, \n, \r) doit s'écrire
%0D%0A
$body=" Bonjour,%0D%0A%0D%0A Une mise à jour de sécurité " .$letype ." est disponible, merci de faire la mise à jour de votre/vos site/s " .$letype .".%0D%0A%0D%0A " .$url; ?> </table> <a href="mailto:?subject=mise à jour / patch / upgrade <?php echo $letype;?>&bcc=<?php echo $ecrireatous; ?>&body=<?php echo $body;?>">Ecrire à tous</a> </div>
vérifier la validité de la syntaxe d'un email
avec un shell script (mode CGI)
placer auparavant dans un fichier email.txt vos emails, eg:
toto@truch.ch t'ata@truch-ch N'GaoundéréC'èJoli @blu
! /usr/bin/php <?php function EmailOK($email) { return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$', $email) ); } $file2open="email.txt"; $handle = @fopen("$file2open", "r"); //tests if ($handle) { //si le fichier est ouvert $laligne=0; while (!feof($handle)) { //begin main loop $buffer = fgets($handle, 4096); $buffer=trim($buffer); $letest=EmailOK($buffer); if($letest=='') { echo "$buffer n'est pas valide"."\n"; } } //end main loop fclose($handle); } ?>
vous renverra des erreurs sur tous les emails, sauf toto@truch.ch (qui n'existe peut-être pas, mais qui est valide)
FILTER_VALIDATE_EMAIL
$email = test_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; }
sur un serveur web via un formulaire OLD
check-email.php
<?
function EmailOK($email) {
return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
$email) );
}
if(isset($email)) {
$letest=EmailOK($email);
if($letest=='') {
echo "PROBLÈME: le mail ";
echo "<h1>$email</h1> n'est pas valide<br><a href=javascript:history.go(-1)>Retour</a>"."<BR>\n";
exit;
} else {
echo "OK: le mail ";
echo "<h1>$email</h1> est valide<br><a href=javascript:history.go(-1)>Retour</a>"."<BR>\n";
exit;
}
}
?>
<form>
<input type='hidden' name='today' value='$today'><br>
Veuillez introduire votre email: <input type='text' name=email>
<input type='submit' value='Soumettre'>
</form>