2013-04-16 38 views
1

我想設置一個基本的電子郵件發件人。這是爲了驗證我的網站上的用戶的電子郵件,並給他們一個令牌點擊。服務器沒有設置爲電子郵件。它是一個香草ubuntu盒子,我真的不想運行郵件服務器,部分原因是我不想讓另一個開放端口擔心。我也希望編程簡單並避免垃圾郵件過濾器。最簡單的建議在perl發送電子郵件?

首先,我試過Gmail。

use Net::SMTP::TLS; 
my $mailer = new Net::SMTP::TLS( 'smtp.gmail.com', 
        Hello => 'smtp.gmail.com', 
        Port => 587, 
        User => $me2, 
        Password=> $pw); 

但我得到了關於'Net :: SMTP :: TLS for Gmail => invalid SSL_version'的投訴。

然後我嘗試了Email :: Send :: Gmail。

my $email_address = $me; 

($me =~ /^[\w\-_\.]+\@[\w\-_\.]+$/) or die "$email_address is invalid"; 

use Email::Send; 
use Email::Send::Gmail; 
use Email::Simple::Creator; 

my $email = Email::Simple->create(
        header => [ 
         From => $me, 
         To  => $me, 
         Subject => 'Testing', 
         ], 
        body => 'Testing email sending with perl.', 
       ); 

my $sender = Email::Send->new(
        { mailer  => 'Gmail', 
        mailer_args => [ 
          username => $me2, 
          password => $pw, 
         ] 
        } 
       ); 
eval { $sender->send($email) }; 
die "Error sending email: [email protected]" if [email protected]; 

這個人抱怨Return :: Value已經被棄用了。那麼,它失敗了 - 可能是因爲我在我的Gmail帳戶上有雙因素身份驗證。這對於我想要的來說太複雜了。

對於這個簡單的任務,推薦最簡單的方法是什麼?

+2

爲什麼不只是爲此創建第二個Gmail帳戶,tuern關閉雙因素身份驗證呢? – DVK

+0

你可以試試郵件/ mailx /電子郵件或類似的命令,看看你是否可以發送郵件與他們?這樣你就會知道問題出在你的代碼或其他地方 – golimar

回答

1

您選擇的兩個模塊都不能正常工作,您應該使用Net::SMTP::TLS::ButMaintained而不是Net :: SMTP :: TLS和Email::Send::SMTP::Gmail而不是Email :: Send :: Gmail。你選擇的模塊是舊的和無人維護的,並且已知會被破壞。

有時候可以通過模塊的CPAN頁面檢查可用的錯誤報告。

+0

我認爲我們需要在cpan上有一個很大的「不推薦使用,用xxx代替」的消息。 –

1

電子郵件::發送已棄用。這個工作對我來說,使用首選電子郵件發件人:::

use strict; 
use warnings; 

use Email::Sender::Simple qw(sendmail); 
use Email::Sender::Transport::SMTPS(); 
use Email::Simple(); 
use Email::Simple::Creator(); 

my $smtpserver = 'server'; 
my $smtpport = 587; 
my $smtpuser = 'username'; 
my $smtppassword = 'password'; 

my $transport = Email::Sender::Transport::SMTPS->new({ 
    host => $smtpserver, 
    port => $smtpport, 
    ssl => "starttls", 
    sasl_username => $smtpuser, 
    sasl_password => $smtppassword, 
}); 

my $email = Email::Simple->create(
    header => [ 
    To  => '[email protected]', 
    From => '[email protected]', 
    Subject => 'Hi!', 
    ], 
    body => "This is my message\n", 
); 

sendmail($email, { transport => $transport }); 
+1

我認爲我們需要在cpan上有一個很大的「不推薦使用,用xxx代替」的消息。 –

相關問題