2010-05-05 9 views
5

Ben e-posta oluşturma ve gönderme için basit (OO?) Yaklaşımı arıyorum.E-posta oluşturmak ve göndermek için iyi bir Perl OO arabirimi nedir?

şey

$e = Email->new(to => "test <[email protected]>", from => "from <[email protected]>"); 
$e->plain_text($plain_version); 
$e->html($html_version); 
$e->attach_file($some_file_object); 

gibi Email :: MIME :: CreateHTML, dosya eklerini desteklemek için görünmüyor dışında neredeyse her şekilde harika görünüyor bulduk.

Ayrıca, bir veritabanına bu e-postaları yazma ve bir cronjob daha sonraki bir tarihte göndermek zorunda düşünüyorum. Bu, ekleri de dahil olmak üzere tüm e-postayı, db içine girebildiğim ham metin olarak iade etmek için $e->as_text() alt ihtiyacım olacağı anlamına gelir. Ve böylece ham e-postaları göndermenin bir yoluna ihtiyaç duyardım - bunu başarmanın iyi bir yolu ne olurdu?

çok teşekkürler

cevap

4

Daha sonra üç sorudan iki tartışmalı olacağını, daha dikkatli belgeleri okumak zorunda. Email::MIME::CreateHTML ait özet itibaren

:

my $email = Email::MIME->create_html(

Açıkçası bir Email::MIME nesne olsun. Ekler olarak adlandırılan yöntemler için parts_set ve parts_set yöntemlerine bakın.

Email::MIMEEmail::Simple bir alt sınıfıdır. Nesneyi metne serileştirmek için as_string yöntemine bakın.

posta göndermek için Email::Sender bakınız.

2

Sen perl MIME::Lite kontrol edebilirsiniz.

Bir veritabanına kaydetmek için bir dize olarak ileti alabilirsiniz:

### Get entire message as a string: 
$str = $msg->as_string; 
+0

Bunun gerçekten mükemmel olabileceğini düşünüyorum! Orada bir yerde olacağını biliyordum! Teşekkürler. – aidan

+0

Tamamen farklı bir MIME posta kitaplığı tanıtmak gerekli değildir. – daxim

1

Email::Stuff E-posta için güzel bir sarıcı :: MIME. Postanın MIME yapısına dikkat etmeniz gerekmez, modül sizin için yapar.

Email::Stuff->from  ('[email protected]'      ) 
      ->to  ('[email protected]'    ) 
      ->bcc  ('[email protected]'    ) 
      ->text_body($body        ) 
      ->attach (io('dead_bunbun_faked.gif')->all, 
         filename => 'dead_bunbun_proof.gif') 
      ->send; 

Ayrıca as_string'e sahiptir.

+0

Bunun için teşekkürler. Email :: Şeyler ideal görünüyor – aidan

İlgili konular