logo   phpMailer - Mail fra aktuel side




Udover den downloadede PHPMailer-kode skal der anvendes 2 sæt kode for at sende en mail fra en almindelig side med sideopdatering.

Mailtekst
Den tekst, der skal udgøre tekstdelen af mailen.
Parametre
De parametre, der skal sikre den fysiske afsendelse af mailen.


Mailtekst

Mailteksten er den tekst, der vises i mailens tekstfelt.
Teksten opbygges som værdidelen af en variabel (Der synes præcedens for at bruge navnet $body). Teksten opbygges som en konkateneret streng af tekst og de indlejrede HTML-tags, der skal til for at give mailen en hensigtsmæssig og overskuelig opbygning for læseren.
Opbygningen af mailteksten placeres der i programmets forløb, hvor det er naturligt.


Mailscript


Mailscriptet placeres typisk umiddelbart efter etableringen af mailteksten.


Scriptets opgave er at tilføre det installerede PHPMailer-program parametre så det kan sende mailteksten og andre relevante data til SMTP-serveren, der ud fra de modtagne data opbygger en mail, der sendes til modtageren.


Der er nedenfor vist et eksempel på en fil med parametre og forklaringer dertil. Selvom de fleste parametre vil være gengangere blandt SMTP serverne, kan der være visse forskelle mellem dem. Det er derfor nødvendigt at afklare den aktuelle parameterstruktur.


De parametre, der ikke skal anvendes i den aktuelle situation, skal enten slettes eller udkommenteres med //.


Udover $body, der er 'obligatorisk', kan de øvrige parametre også 'fjernstyres' med variabler fra brugerprogrammet. Det kan i næste led have hentet datene fra en database.


   
//MAILTEKST:
$body=
'Hej ' . $brug_fornavn
.'!<br />'
.'<br />I stedet for det glemte kodeord til MUndaneUM har du nu fået tildelt:'
.'<br />' . $pass_ny
.'<br />Det skal du bruge fremover indtil du selv indsætter et nyt.'
;


//MAILSCRIPT:
require_once 'php_mailer/PHPMailer-master/PHPMailerAutoload.php'; // Opkobling til fil i det downloadede PHPMailer program
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
//$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->Username = "xxxxx@gmail.com"; //afsenders mail adresse hos google til logind
$mail->Password = "xxxxxx"; //afsenders password gos google til logind
$mail->SMTPSecure = "tls";
$mail->Port = 587;
$mail->SMTPOptions = array(
    'ssl' => array(
       'verify_peer' => false,
       'verify_peer_name' => false,
       'allow_self_signed' => true
    )
);
$mail->SetFrom('xxxxx@mail.dk'); // afsenders mail adresse hvorsomhelst (sitets webmaster?)
//$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->Subject = "Nyt kodeord";
$mail->isHTML = true;
$mail->MsgHTML($body);
$mail->AddAddress($brug_mail, $brug_fornavn); //modtagers mail adr og ident
//$mail->AddAttachment("images/phpmailer.gif");
//$mail->AddAttachment("images/phpmailer_mini.gif");
if(!$mail->Send()) {
echo "Der er opstået følgende fejl under afsendelse af mailen:<br />" . $mail->ErrorInfo . "<br />Kontakt evt. webmaster.";
} else {
echo "E-mail er nu sendt til dig.";
}


Google's tutorial vedr. parameterscriptet kan ses her x.




FORM-baseret mail


Udover ovennævnte eksempel, hvor mailteksten har sin oprindelse internt i programmet, kan teksten også komme fra en FORM - f.eks. 'kontakt' - baseret på:

  • En <form>-del
  • $_POST-del


Form-delen opbygges helt traditionelt med method="POST" og action="".


$_POST-delen opbygges grundlæggende ens hvadenten der sendes til database eller til mail - dog med følgende udskiftning:

  • Ved UPDATE til database
    Der indsættes den kode, der skal til for "update" af databasen.
  • Ved Send() mail
    I stedet for "update"-koden indsættes konkatenerede variabel tilpasset den aktuelle situation (tekster, navne på variabler og deres antal):
    $body=
    'Fornavn:'                 .$fornavn
    .'<br />Efternavn:'   .$efternavn
    .'<br />Adresse:'      .$adresse;
    .'<br />Postnr:'        .$postnr
    .'<br />By:'              .$bynavn
    .'<br />Mail:'            .$mail
    .'<br />Tekst:'          .$tekst
    ;
    include (" includes/phpmailer_parametre.php"); // Opkobling til programmet med lokale parametre


Variabelnavnet $body må ikke ændres uden også at ændre i "phpmailer_parametre.php".


For at brugerens indlagte data kan præsenteres på en pæn måde, når de skal læses, består hver af de viste kodelinier af to dele:

  • HTML-del
    Anvendes til at opbygge et layout så brugerens data fremstår pænt og læsbart, når mailen skal læses. (Alle brugerens indtastede data vises i mailens tekst-del).
  • Variabel-del
    Henter felt for felt dataene fra $_POST.

Det hele konkateneres sammen i en enkelt variabel (f.eks. "$body"). Den anvendes i mailscriptet.
























x
x