2015-10-07 61 views
0

代碼附件如何在Perl中將文件的內容作爲電子郵件發送?

$msg->attach(Type  => 'document/text', 

     Path  => "C:\\SDB_Automation\\sdb_dump.txt", 
     Filename => 'sdb_dump.txt', 
     Disposition => 'attachment' 
     );  
$msg->send; 

我在文本文件打印數據並將其保存在我的本地機器。但是,由於用戶類型,我只想發送該文件的數據而不是該文本文件。

+0

可能重複[我怎樣才能發送文件的內容,如電子郵件在Perl?](http://stackoverflow.com/questions/1325392/how-can-i-send-the-content-of -file-as-email-in-perl) –

+0

你不想附加文件,而是將它的內容發送到電子郵件正文中?有什麼問題? – user4035

+0

如果你告訴我們'$ msg'是哪種類型的對象,那麼幫助你會容易得多。 Perl有許多用於創建和發送電子郵件的模塊 - 您要求我們猜測您正在使用哪一個模塊。 –

回答

0

Perl有許多模塊可以提供幫助。例如嘗試slurp。希望這個幫助。

use Email::MIME; 
use Email::Sender::Simple qw(sendmail); 
use Email::Sender::Transport::SMTP::TLS; 
use Path::Class qw/file/; 
use File::Type; 
use MIME::Base64; 
$file= file(path); 
$file = scalar $file->slurp; 
my $newpart = Email::MIME->create(
      attributes => { 
       content_type => type, 
       encoding => base64, 
       disposition => $attachment->{disposition}, # maybe useful rfc2387 
       charset => undef, 
       name => 'attachment', 
       }, 
       body => $file, 
     ); 
push @parts , $newpart; 
my $email = Email::MIME->create(
      header => [ 
       From  => " ", 
       To   => "", 
       Subject  => "", 
       'Reply-To' => "", 
      ], 
      parts => [@parts], 
     ); 
Email::Sender::Simple->send($email) 
+0

非常感謝您的幫助,但我試圖與前景,它的工作:P'代碼'打開我的$ FH,'<',「C:\\ SDB_Automation \\ sdb_dump.txt」或死「哦! ; my $ text1 = do local local $ /; <$fh> }; 關閉$ fh或死「呃:$!\ n」; print $ text1,「\ n」; 'code'和$ message-> Body(「$ text1」); –

相關問題