logo

INTERNETNE STORITVE

- IZDELAVA SPLETNIH STRANI - OBLIKOVANJE - PROGRAMIRANJE DODATKOV

PHP - pošiljanje emaila - epošte - sending email - HTML Mime Mail

Na blogu smo si že pogledali kako nastaviti pravilni charset oz. kodno tabelo pri uporabi HTML Mime Mail paketa, da zadeva deluje na Outlook Express aplikaciji. Sedaj pa si poglejmo še kratek primer kako poslati e-pošto oz. email s pomočjo HTML Mime Mail PHP paketa, saj se velikokrat na forumih pojavi vprašanje kako to storiti. Kratek primer pošiljanja e-pošte:

PHP:
  1. header('Content-Type: text/html; charset=utf-8');
  2. require_once('htmlMimeMail5/htmlMimeMail5.php');
  3.  
  4. $htmlBody = "<b>Testiram UTF-8 - č,š,ž</b><ul><li>Prva alineja</li></ul>";
  5. $textBody = "Testiram UTF-8 - č,š,ž\nPrva alineja";
  6.  
  7. // Create new instance
  8. $mail = new htmlMimeMail5();
  9.  
  10. // Set proper charset
  11. $mail->setHTMLCharset ("UTF-8");
  12. $mail->setHeadCharset ("UTF-8");
  13. $mail->setTextCharset ("UTF-8");
  14. $mail->setSubject ('Testni Email');
  15.  
  16. // Set HTML body. If email application doesn't support HTML, text body will be displayed
  17. $mail->setHtml ($htmlBody);
  18. $mail->setText($textBody);
  19.  
  20. // Who send this?
  21. $mail->setFrom ('Rok Meglič <rok.meglic@gmail.com>');
  22.  
  23. // You can also add cc, bcc
  24. $mail->setBcc('test@test.com');
  25. $mail->setCc('test@test.com');
  26.  
  27. // Add some files
  28. $mail->addEmbeddedImage(new fileEmbeddedImage('trspletlogo.bmp'));
  29. $mail->addAttachment(new fileAttachment('Excel.rar'));
  30.  
  31. // Try to send email
  32. $status = $mail->send(array ('rok.meglic@gmail.com', 'info@trsplet.com'));
  33.  
  34. if ($status === false) {
  35.     echo 'Pošiljanje e-pošte ni uspelo';
  36. } else {
  37.     echo 'Pošiljanje e-pošte je uspelo';
  38. }

Rezultat:
Testni email poslan s pomočjo PHP HTML Mail Mime paketa

Namig:
Če se vam ne da ukvarjati s posebno vsebino za plain text mail oz. za uporabnike, ki nimajo e-poštnega odjemalca z HTML podporo, lahko preprosto uporabe strip_tags ter br2nl nad vašim HTML sporočilom. Tako bodo vsi br-ji pretvorjni v new line znak, vsi ostali HTML atributi pa bodo pobrisani. Primer:

PHP:
  1. $htmlBody = "<b>Testiram UTF-8 - č,š,ž</b><ul><li>Prva alineja</li></ul>";
  2. $textBody = strip_tags(br2nl($htmlBody));
  3.  
  4. //Source: http://si.php.net/manual/en/function.nl2br.php#62801
  5. function br2nl($text) {
  6.     return  preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
  7. }

Download:

Datoteka:

10x komentirano na “PHP - pošiljanje emaila - epošte - sending email - HTML Mime Mail”

  1. modman je napisal:

    Kako pa lahko v html besedilu preko img taga dodamo sliko, ki jo pošljemo preko attachmenta? V tvojem primeru recimo ?
    Mogoče veš?

  2. Roky je napisal:

    Uporabimo normalni img tag, vendar moramo pod src atribut napisati absolutno pot, primer:

    HTML:
    1. <img src="http://trsplet.com/static/images/logo.jpg" alt="trsplet - internetne storitve - logo" />

    Poudarjam, ne relativno ampak absolutno pot.

  3. Mesko je napisal:

    Kako je pa le z CSS oblikovanjem? Nekateri maili, ki jih dobivam pridejo ful dobro oblikovani. Sicer sem probal že in v Outlooku mi dela samo v GMAIL na spletu mi pa prikaže samo HTML značke ... baje, da je neka fora ... samo ne vem kaka. Ve kdo?

  4. Roky je napisal:

    Za CSS oblikovanje velja enako kot za sliko, zadeva deluje vendar morate imeti pod do CSS absolutno.

  5. Mesko je napisal:

    Si probal če dela tudi v GMAIL? Sem že probal tako, ampak mi ne prikaže CSS stilov :S

  6. Roky je napisal:

    Jap, dela povsod, tako gmail kot outlook. Je pa važno, da uporabljaš div za gmail .. nekaj takega, več bo Toni znal povedat.

  7. Mesko je napisal:

    Aha, ok ... jst sem delal szi phpXMailerjem pa mi ni prov delalo ... emm še nekaj ... v "$htmlBody" spravi komplet HTML? (Skupaj szi ...)?

  8. Roky je napisal:

    Komplet HTML spraviš noter ja, tko kokr če bi hotu prikazat HTML stran na internetnu, sam da je ne izpišeš ampak daš v HTMLBody ...

  9. Mitja je napisal:

    Ali ni boljša in preprostejša uporaba PHPMailerja drugače pa lep vodič.

  10. Roky je napisal:

    Ja, obstaja še veliko drugih, zaenkrat mi tale ustreza:)

Dodaj komentar