2019年6月27日 星期四

Perl send mail via gmail (use Net::SMTPS)

狀況:
更新 perl module 後無法用 Net::SMTP::TLS 透過 gmail 寄信。

錯誤訊息:
invalid SSL_version specified at C:/Perl/site/lib/IO/Socket/SSL.pm line 575

原因:
Net::SMTP::TLS 有 bug,和新的 IO::Socket::SSL 不合。

解法:
改用 use Net::SMTPS。使用方法和 Net::SMTP::TLS 幾乎一樣
只需修改紅色的那三行。


use Net::SMTPS;

$gmail_from = 'myaccount@gmail.com';
$mail_subject = "Subject Here";

$smtp = new Net::SMTPS (
'smtp.gmail.com',
Port    => 465,
doSSL => 'ssl',
Timeout => 10
);

$smtp->auth ( 'myaccount@gmail.com', 'mypassword' );
#  -- Enter email FROM below.   --
$smtp->mail('chdu.tw@gmail.com');

$smtp->to('email1', 'email2');

$smtp->data();

#This part creates the SMTP headers you see
$smtp->datasend("From: $gmail_from \n");
$smtp->datasend("Content-Type: text/html \n");
$smtp->datasend("Subject: $mail_subject");
# line break to separate headers from message body
$smtp->datasend("\n");
$smtp->datasend("Test");

$smtp->datasend("\n");
$smtp->dataend();

$smtp->quit;


2019年6月19日 星期三

Perl MIME:LITE 中文標題 亂碼

Reference:
使用 perl 发送中文邮件标题乱码
Email主旨亂碼 =?Big5?(Q|B)?xxxxxxxxxx ?=

狀況:
用 MIME:LITE 發信,中文標題變成亂碼

解法:
use MIME::Lite;
use MIME::Base64;

$mail_host = "My_SMTP_server";
$mail_from = 'from_address';
$mail_to = 'to_address';
$mail_subject = '=?big5?B?'. encode_base64("繁體中文標題") .'?=';
$mail_body = "Test";

mail_notify();

sub mail_notify {
MIME::Lite->send('smtp', $mail_host, Debug=>0, Timeout=>60);
$msg = MIME::Lite->new(
From     => $mail_from,
To       => $mail_to,
Subject  => $mail_subject,
Type     =>'multipart/mixed',
);
$msg->attach (
Type => 'TEXT',
Data => $mail_body,
) or die "Error adding the text message part: $!\n";
$msg->send();
}

2019年6月2日 星期日

2019/6/2 國家地理世界海洋日路跑

早上沒出太陽,風很大,感覺很不錯。

主辦單位:《國家地理》雜誌中文版、大石國際文化有限公司
活動地點:新竹市南寮漁港 港區第二停車場