我需要編寫一個perl腳本來發送電子郵件。 腳本應讀取包含電子郵件地址作爲其第一個參數的.txt文檔(可能有多個地址,它們全都用「;」分隔)和一個.html文檔,該文檔應該是電子郵件的主體郵件爲第二。perl腳本sendMail
#!/usr/bin/perl -w
use Net::SMTP::SSL;
sub send_mail {
my $to = $ARGV[0];
open(MYFILE, $to) || die("Could not open file!");
@recepients=<MYFILE>;
close(MYFILE);
my $body = $ARGV[1];
open (TXTFILE, $body);
@lines = <TXTFILE>;
close(TXTFILE);
$body = join("",@lines);
my $from = '[email protected]';
my $password = 'thePassword';
my $smtp;
if (not $smtp = Net::SMTP::SSL->new('smtp.gmail.com',
Port => 465,
Debug => 1)) {
die "Could not connect to server\n";
}
$smtp->auth($from, $password) || die "Authentication failed!\n";
$smtp->mail($from . "\n");
my @recepients = split(/;/, $to);
foreach my $recp (@recepients) {
$smtp->to($recp . "\n");
}
$smtp->data();
$smtp->datasend("From: " . $from . "\n");
$smtp->datasend("To: " . $to . "\n");
$smtp->datasend("Subject: " . $subject . "\n");
$smtp->datasend("\n");
$smtp->datasend($body . "\n");
$smtp->dataend();
$smtp->quit;
}
&send_mail()
所以我嘗試了一些東西,但是我在從.txt和.html文檔中提取信息時遇到了問題。所以這個錯誤應該是在收件人分裂的地方。
檢查你的'$ to'變量。它是一個文件名,不是文件的第一行......另外,還有一些改進的指針:'use strict','open(my $ fh,'<','filename')'和'File :: Slurp'。 – Unk
是的,我修正了這個問題,現在它可以工作,但是如果我在.txt文件中只留下一個電子郵件地址,否則它仍然沒有將它們分開。如果你只能幫助我 – Marin