为什么邮件不显示在已发送的文件夹中?

时间:2013-11-29 16:19:55

标签: perl smtp

我使用Net :: SMTP与Perl一起发送邮件 我发送邮件时带有以下代码,我看到邮件已发送到收件人xxx@mail.com

my $smtp = Net::SMTP->new($server,
                 Port    => $port,
             Timeout => 10,
             Debug   => 1);
$smtp->auth($user, $password);

$smtp->mail('sender@mail.com');*
$smtp->to('xxx@mail.com');
$smtp->data();
$smtp->datasend("Subject: $subject\n\r\n\r".
                          $body);*
$connection->dataend();

但是当我去发件人帐号邮箱(sender@mail.com)时,我在SENT文件夹中看不到这封邮件。 我怎么能提供这个?

2 个答案:

答案 0 :(得分:2)

正如@ikegami在上面的评论中所说,您需要使用IMAP客户端来执行此操作。 SMTP仅用于发送消息,IMAP用于管理消息存储。简而言之,SMTP用于实际将消息发送给收件人。 IMAP用于管理用户的邮件文件夹,存储邮件以供以后访问。 IMAP驱动访问常见电子邮件阅读客户端中存储的消息。

Perl中有少量IMAP客户端,例如:Mail::IMAPClient。 IMAP明显比SMTP复杂(毕竟'S'代表'简单')但是一旦你设法通过所有的身份验证系统(这将是大部分工作),就有{{1}在Mail::IMAPClient#Mailbox-Control-Methods记录的方法可能符合您的要求:

append

您可以使用此功能在发送用户的IMAP帐户中存储邮件的已发送副本。显然,您设置的身份验证需要允许访问它。

该模块文档齐全,并有大量示例。

答案 1 :(得分:0)

我将使用以下命令

我的$ uid = $ imap->追加($ folder,$ msg_text)或死“无法附加:$ @ \ n”;

发送文件夹的名称是什么? scalr $文件夹的价值是什么? SENT,OUTBOX