2009-02-18 10 views
11

मैं ईमेल भेजने के लिए sendmail का उपयोग नहीं करना चाहता लेकिन एसएमटीपी का उपयोग करना पसंद करूंगा। मैं अपने जीमेल खाते में एक ईमेल भेजने के लिए पर्ल का उपयोग कैसे कर सकता हूं?मैं एसएमटीपी और पर्ल का उपयोग कर अपने जीमेल खाते में ईमेल कैसे भेजूं?

+0

मैं वास्तव में सवाल नहीं मिलता है: आप Google के एसएमटीपी सर्वर से सीधे बात करना चाहते हैं? या अपना खुद का? क्या इस सवाल के बारे में जीमेल-विशिष्ट कुछ है? – innaM

उत्तर

13

व्यक्तिगत रूप से मैं आपको अपने मॉड्यूल Email::Send::SMTP::TLS का उपयोग करने का सुझाव दूंगा जो Google Mail के TLS के माध्यम से बहुत अच्छी तरह से काम करता है ।

धन्यवाद।

use Email::Send; 

my $mailer = Email::Send->new({ 
    mailer => 'SMTP::TLS', 
    mailer_args => [ 
     Host => 'smtp.gmail.com', 
     Port => 587, 
     User => '[email protected]', 
     Password => 'password', 
     Hello => 'fayland.org', 
    ] 
}); 

use Email::Simple::Creator; # or other Email:: 
my $email = Email::Simple->create(
    header => [ 
     From => '[email protected]', 
     To  => '[email protected]', 
     Subject => 'Subject title', 
    ], 
    body => 'Content.', 
); 

eval { $mailer->send($email) }; 
die "Error sending email: [email protected]" if [email protected]; 
1

सीपीएएन पर कई एसएमटीपी मॉड्यूल हैं, उदाहरण के लिए Net::ESMTP। साथ ही, प्रेषण मेल शायद मेल सर्वर के साथ संवाद करने के लिए एसएमटीपी का उपयोग करता है, तो इसका उपयोग करने के लिए आपका असली कारण क्या है?

0

यदि आप CPAN (व्यापक पर्ल आर्काइव नेटवर्क) से परिचित नहीं हैं, तो मैं आपको उस साइट को बुकमार्क करने की सलाह देता हूं। इसमें तीसरे पक्ष (ज्यादातर अच्छी तरह से परीक्षण) पुस्तकालय शामिल हैं।

कैसे पर्ल का उपयोग कर ईमेल भेजने के लिए दिखा एक उदाहरण: http://www.perlfect.com/articles/sendmail.shtml

+0

ओपी ने कहा: "मैं sendmail का उपयोग नहीं करना चाहता" – jfs

6

टिप्पणी के अनुसार, यह स्पष्ट नहीं है अगर आप Google के SMTP के माध्यम से ईमेल भेजने के लिए, या बस (शायद अपने जीमेल खाते में) सामान्य रूप में ईमेल भेजने के लिए चाहते हैं । आपको Email::Send और संभवतः Email::Send::Gmail देखें।

वैकल्पिक रूप से, अगर आप वास्तव में क्या कह रहे हैं कि कैसे मैं कहीं है कि जीमेल के लिए जीमेल नहीं है से ईमेल के लिए कदम करते हैं, मैं Mail::Box और Mail::Box::IMAP4::SSL बैकएंड का उपयोग कर IMAP के साथ बहुत अच्छी किस्मत लिया है। आप here का उपयोग करने का एक उदाहरण देख सकते हैं।

+0

ईमेल :: भेजें हाल ही में ईमेल :: प्रेषक –

0

मैं MIME::Lite का उपयोग करता हूं, जो ईमेल ऑब्जेक्ट्स, फ़ाइल अनुलग्नक बनाने और पेलोड भेजने की प्रक्रिया को सरल बनाने के लिए Net::SMTP के आसपास एक रैपर है।

आप मॉड्यूल स्थापित करने से परिचित नहीं हैं, तो जांचें:

Windows पर, यूनिक्स पर

(प्रारंभ मेनू में) का उपयोग ActiveState पर्ल पैकेज प्रबंधक, CPAN का उपयोग करें: $ sudo cpan Module::Name

पर होस्ट किए गए यूनिक्स खाते: How can I install a CPAN module into a local directory?

2

मैंने हमेशा उपयोग किया है और Mail::Sender के साथ बहुत अच्छी किस्मत है।

+0

मेल :: प्रेषक के पक्ष में भेजा गया है। – daotoad

1

एक और संभावना जो आप देखना चाहते हैं वह Email::Send::Gmail सीपीएएन से मॉड्यूल का उपयोग कर रही है। यह आपको ईमेल अपने जीमेल खाते से किसी भी खाते में (उदाहरण के लिए, अपने आप को) भेजने के लिए

0

तुम सिर्फ sendmail पसंद नहीं है की अनुमति देगा, एक और विकल्प Postfix, एक और एमटीए का प्रयोग है। http://souptonuts.sourceforge.net/postfix_tutorial.html

यह भी उपयोगी हो सकता है, यदि आप Thawte प्रीमियम सर्वर सीए से एक प्रमाणपत्र सत्यापित करने में नाकाम रहने के बारे में एक चेतावनी मिलती है:

यहां निर्देश दिए मैं अपने मशीन पर यह सेटअप पाने के लिए पीछा किया, का उपयोग कर रहे हैं जीमेल http://ubuntuforums.org/archive/index.php/t-894355.html

0

Email::Send (के रूप में Fayland लाम के जवाब में प्रयुक्त) हटाई गई है:

ईमेल :: संदेश दूर जा रहा है ... ठीक है, नहीं वास्तव में दूर जा रहा है, लेकिन यह आधिकारिक तौर से बाहर चिह्नित किया जा रहा है " एहसान।"

यह मेरे लिए काम करता है, वरीय ईमेल :: भेजने वाले का उपयोग कर:

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 }); 
संबंधित मुद्दे