Perl - Gửi Email
Sử dụng Tiện ích sendmail
Gửi một tin nhắn đơn giản
Nếu bạn đang làm việc trên máy Linux / Unix thì bạn chỉ cần sử dụng sendmailtiện ích bên trong chương trình Perl của bạn để gửi email. Đây là một tập lệnh mẫu có thể gửi email đến một ID email nhất định. Chỉ cần đảm bảo rằng đường dẫn cho tiện ích sendmail là chính xác. Điều này có thể khác với máy Linux / Unix của bạn.
#!/usr/bin/perl
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
open(MAIL, "|/usr/sbin/sendmail -t");
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;
close(MAIL);
print "Email Sent Successfully\n";
Trên thực tế, tập lệnh trên là một tập lệnh email khách, sẽ soạn thảo email và gửi đến máy chủ đang chạy cục bộ trên máy Linux / Unix của bạn. Tập lệnh này sẽ không chịu trách nhiệm gửi email đến đích thực. Vì vậy, bạn phải đảm bảo máy chủ email được định cấu hình đúng cách và đang chạy trên máy của bạn để gửi email đến ID email đã cho.
Gửi tin nhắn HTML
Nếu bạn muốn gửi email có định dạng HTML bằng sendmail, thì bạn chỉ cần thêm Content-type: text/html\n trong phần tiêu đề của email như sau:
#!/usr/bin/perl
$to = 'abcd@gmail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
open(MAIL, "|/usr/sbin/sendmail -t");
# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "Content-type: text/html\n";
# Email Body
print MAIL $message;
close(MAIL);
print "Email Sent Successfully\n";
Sử dụng MIME :: Mô-đun Lite
Nếu bạn đang làm việc trên máy tính Windows, thì bạn sẽ không có quyền truy cập vào tiện ích sendmail. Nhưng bạn có cách khác để viết ứng dụng email của riêng mình bằng cách sử dụng mô-đun MIME: Lite perl. Bạn có thể tải xuống mô-đun này từ MIME-Lite-3.01.tar.gz và cài đặt nó trên máy tính Windows hoặc Linux / Unix của bạn. Để cài đặt nó, hãy làm theo các bước đơn giản -
$tar xvfz MIME-Lite-3.01.tar.gz
$cd MIME-Lite-3.01
$perl Makefile.PL
$make
$make install
Vậy là xong và bạn sẽ có mô-đun MIME :: Lite được cài đặt trên máy của mình. Bây giờ bạn đã sẵn sàng để gửi email của mình với các tập lệnh đơn giản được giải thích bên dưới.
Gửi một tin nhắn đơn giản
Bây giờ sau đây là một tập lệnh sẽ xử lý việc gửi email đến ID email đã cho -
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->send;
print "Email Sent Successfully\n";
Gửi tin nhắn HTML
Nếu bạn muốn gửi email có định dạng HTML bằng sendmail, thì bạn chỉ cần thêm Content-type: text/html\ntrong phần tiêu đề của email. Sau đây là tập lệnh, sẽ xử lý việc gửi email có định dạng HTML -
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = '<h1>This is test email sent by Perl Script</h1>';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Data => $message
);
$msg->attr("content-type" => "text/html");
$msg->send;
print "Email Sent Successfully\n";
Gửi tệp đính kèm
Nếu bạn muốn gửi một tệp đính kèm, thì tập lệnh sau sẽ phục vụ mục đích:
#!/usr/bin/perl
use MIME::Lite;
$to = 'abcd@gmail.com';
$cc = 'efgh@mail.com';
$from = 'webmaster@yourdomain.com';
$subject = 'Test Email';
$message = 'This is test email sent by Perl Script';
$msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Type => 'multipart/mixed'
);
# Add your text message.
$msg->attach(Type => 'text',
Data => $message
);
# Specify your file as attachement.
$msg->attach(Type => 'image/gif',
Path => '/tmp/logo.gif',
Filename => 'logo.gif',
Disposition => 'attachment'
);
$msg->send;
print "Email Sent Successfully\n";
Bạn có thể đính kèm bao nhiêu tệp tùy thích trong email của mình bằng phương thức đính kèm ().
Sử dụng Máy chủ SMTP
Nếu máy của bạn không chạy máy chủ email thì bạn có thể sử dụng bất kỳ máy chủ email nào khác có sẵn ở vị trí từ xa. Nhưng để sử dụng bất kỳ máy chủ email nào khác, bạn sẽ cần phải có id, mật khẩu, URL của nó, v.v. Khi bạn có tất cả thông tin cần thiết, bạn chỉ cần cung cấp thông tin đó trongsend() phương pháp như sau -
$msg->send('smtp', "smtp.myisp.net", AuthUser=>"id", AuthPass=>"password" );
Bạn có thể liên hệ với quản trị viên máy chủ email của mình để có thông tin đã sử dụng ở trên và nếu chưa có id người dùng và mật khẩu thì quản trị viên của bạn có thể tạo nó trong vài phút.