- május 2012 (1)
- január 2012 (1)
- július 2011 (1)
- május 2011 (1)
- február 2011 (1)
- január 2011 (3)
- december 2010 (2)
- november 2010 (2)
- október 2010 (3)
- szeptember 2010 (2)
- 1 / 2
- ››
Egyik ügyfelünknél felmerült az igény, hogy egy form kitöltése után automatikusan küldjünk ki egy email-t csatolmánnyal együtt.
A probléma megoldására a régebbről ismert HtmlMimeMail PHP osztályt használtam.
Nagyon jól megszerkesztett osztály úgyhogy nagyon könnyű használni, ám Drupal alatt mégsem lehetett alkalmazni a leírásban olvastakat.
Az első problémát az jelentette, hogy nem lehetett az osztályt beilleszteni, illetve objektumot készíteni belőle. Egyszerűen kifagyott tőle a Drupal és fehér képernyő jelent meg. Szerencsére van olyan verziója is, amitől nem jelentkezik ez a probléma.
Innen telölthető zip-el tömörítve (20 KB): HtmlMimeMail Drupal.
Miután ez megoldódott nagyjából a HtmlMimeMail oldalán található leírásokat kellett alkalmazni néhány dolgot kivéve.
Először egy ellenőrzés arról, hogy nem-e létezik már az osztály:
if (!class_exists('htmlMimeMail') && !class_exists('Mail_mimePart')) { require_once(dirname(__FILE__)."/htmlmimemail/htmlMimeMail.php"); }
$mail = new htmlMimeMail();
$mail->setTextCharset('UTF-8');
$mail->setHtmlCharset('UTF-8');
$mail->setHeadCharset('UTF-8');
$mail->setFrom($_POST["offer_name"] . " <" . $_POST["offer_email"] . ">");
$mail->setSubject('Ezt nézd meg');
$mail->setText($uzenet); // Ha text levelt kuldunk
$mail->setHTML($uzenet); // Ha HTML levelet kuldunk$mail->addAttachment(new fileAttachment('example.zip', 'application/zip', new Base64Encoding()));
$filename = $node->field_nyitolap_top10_latvany[0]['filepath']; $attachment = ''; if ($fp = fopen($filename, 'rb')) { while (!feof($fp)) { $attachment .= fread($fp, filesize($filename)); } } fclose($fp);
Végül be kell állítani a fejlécet és elküldeni:
$mail->setHeader('Date',date('D, d M y H:i:s 0')); $mail->setHeader('X-Mailer','Drupal'); $mail->send(array('<' . $_POST["offered_email_$i"] . '>'),'mail');