Home > Обща > Perl, SMTP, TLS, GMail – изпращане на e-mail

Perl, SMTP, TLS, GMail – изпращане на e-mail

Трябваше ми набързо пърл скриптче за изпращане на e-mail-и през gmail smtp сървъра. Поразрових по нета, оказа се, че има написани доста интересни неща, но естествено и обилно количество глупости. Всъщност, повече време си загубих в търсенето на правилната библиотека. Реших да ползвам Net::SMTP::TLS, която не идва с default-на инсталация на ActivePerl за Windows, а до колкото помня и при чиста инсталация от FreeBSD портовете я няма. Изключение прави Strawberry Perl за Windows, която инсталира и TLS библиотеката.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use strict;
use warnings;

use Net::SMTP::TLS;

my $sender = "you\@gmail.com";
my $password = "your-password-here";
my $recipient = "recipient_email\@here";
my $subject = "Sing me a song";
my $body = "Trah-lah-lah";
my $smtp = "smtp.gmail.com";
my $port = 587;

my $mail = new Net::SMTP::TLS($smtp,
  Hello    =>  $smtp,
  Port     =>  $port,
  User     =>  $sender,
  Password =>  $password);

$mail->mail($sender);
$mail->to($recipient);

$mail->data();
$mail->datasend("To: $recipient\n");
$mail->datasend("Subject: $subject\n");
$mail->datasend("From: $sender\n");
$mail->datasend("Content-Type: text/plain\n");

$mail->datasend("\n");
$mail->datasend($body);
$mail->datasend("\n");
$mail->dataend();
$mail->quit;

Забележете, че преди body-то има 2 празни реда. Оставете ги така :) Разделят хедъра от боди частта.

Categories: Обща Tags: , , , ,