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

Perl 为什么邮件不显示在已发送文件夹中?,perl,smtp,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->mai

我正在使用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),我在“已发送”文件夹中未看到此邮件。
如何提供此功能?

正如@ikegami在上面的评论中所说,您需要使用IMAP客户端来完成此操作。SMTP仅用于发送邮件,IMAP用于管理邮件存储。简单地说,SMTP用于实际向收件人发送邮件。IMAP用于管理用户的邮件文件夹,存储邮件供以后访问。IMAP是在普通电子邮件阅读客户端中驱动访问存储邮件的功能

Perl中几乎没有IMAP客户端,例如:。IMAP要比SMTP复杂得多(毕竟“S”代表“简单”),但一旦您成功地通过了所有身份验证系统(这将是大部分工作),就会有一个
append
方法记录在案,它可能会满足您的需要:


my$uid=$imap->append($folder,$msg\u text)
或“无法追加:$@\n”;

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


该模块有很好的文档记录,并且有很多示例。

我将使用下面的命令

my$uid=$imap->append($folder,$msg_text)或die“无法追加:$@\n”


已发送文件夹的名称是什么?scalr$文件夹的值是多少?“已发送,发件箱”

您必须使用IMAP(或任何东西)将邮件放入IMAP(或任何东西)服务器上的文件夹中。您可以密件抄送发件人在其收件箱中放置一份副本。@ikegami您应该将此作为答复发布。文件夹仅用于接收邮件,不用于发送邮件,IMAP和SMTP是独立的服务。@Stuart Watt,请继续,并获得信任。我得走了