纯文本电子邮件在某些电子邮件客户端上显示为附件

时间:2015-06-17 07:59:15

标签: perl email attachment mime plaintext

可以使用某些电子邮件客户端(Evolution,Thunderbird)正常查看电子邮件,但是对于其他客户端(例如GMX),邮件正文仍为空,并且会发送包含邮件正文的附件。

我想知道如何防止这种情况发生,因为该消息旨在被人类阅读并且身体处于附件中是很奇怪的。

    my $ServerName = "";

    my $from_address = '';
    my $to_address   = '';
    my $subject      = 'MIME Test: Text';
    my $mime_type    = 'text';
    my $message_body = "This is a test.\n";
    # Create the initial text of the message
    my $mime_msg = MIME::Lite->new(
    From    => $from_address,
    To      => $to_address,
    Subject => $subject,
    Type    => $mime_type,
    Data    => encode("utf8",$message_body)

    ) or die "Error creating MIME body: $!\n";

    # encode body of message as a string so that we can pass it to Net::SMTP.

    $message_body = $mime_msg->body_as_string();

    # Let MIME::Lite handle the Net::SMTP details
    MIME::Lite->send( 'smtp', $ServerName,);# AuthUser => $user, AuthPass => $pass );
    $mime_msg->send() or die "Error sending message: $!\n";

1 个答案:

答案 0 :(得分:1)

我认为这是你要回答的结果

documentation for MIME::Lite说明了这个

  

当前的维护者不推荐使用MIME :: Lite。有许多替代方案,例如Email :: MIME或MIME :: Entity和Email :: Sender,您可能应该使用它们。 MIME :: Lite继续产生奇怪的错误报告,并且由于有更好的替代方案,它没有收到大量的重构。请考虑使用其他东西。

“现在的维护者”是无与伦比的Ricardo Signes,我建议你听从他的建议

相关问题