-3

I am using MIME::Lite to send emails. I am not sending mails in bulk. I have the following code to send mail.

my $msg = MIME::Lite->new(
    To      => "$recipient_address",
    From    => "$sender_displayname <$sender_email>",
    Subject => "$subject",
    Type    => "multipart/alternative",
);
my $att_text = MIME::Lite->new(
    Type     => 'text',
    Data     => $message_body_plain,
    Encoding => 'quoted-printable',
);
$att_text->attr('content-type' => 'text/plain; charset=UTF-8');
$msg->attach($att_text);

my $att_html = MIME::Lite->new(
    Type     => 'text',
    Data     => $message_body_html,
    Encoding => 'quoted-printable',
);
$att_html->attr('content-type' => 'text/html; charset=UTF-8');
$msg->attach($att_html);

When I send mails, in few domains, like Google, the email lands in SPAM folder, whereas in Yahoo, the mail appears in INBOX. I Googled and read the documentation provided by Google and found that if the email has the seigned-by/mailed-by headers, then the email is not filtered by SPAM filter.

Following is the text which I referred:

The authentication process tries to verify the real sender by looking at a message's authentication data. This data should be included in a message's "signed-by" or "mailed-by" headers (shown beneath the subject line when you look at a message's details). When the sender doesn't include this data, we can't be sure whether or not the message was forged. For example, a message might claim to be from a Gmail address, but we can't confirm that claim if the message doesn't have authentication data.

Please help!

Miller
  • 34,962
  • 4
  • 39
  • 60
Krishnachandra Sharma
  • 1,332
  • 2
  • 20
  • 42
  • 1
    FYI, the [Mime::Lite docs](https://metacpan.org/pod/MIME::Lite#WAIT) say *"**WAIT!** `MIME::Lite` is not recommended by its current maintainer. There are a number of alternatives, like `Email::MIME` or `MIME::Entity` and `Email::Sender`, which you should probably use instead. `MIME::Lite` continues to accrue weird bug reports, and it is not receiving a large amount of refactoring due to the availability of better alternatives. Please consider using something else."* – ThisSuitIsBlackNot Aug 06 '14 at 14:15

1 Answers1

1

Supporting Pathak in that this is not Perl related.

But anyway, I would try including:

my $msg = MIME::Lite->new(
    "-Mailed-by" => 'real.mailaccount@sending-mailserver.com', 
    ...

Make sure this mail address (and/or the From-mail address) actually exists, preferably on the SMTP server you are using as part of

$msg->send('smtp', 'smtp.sending-mailserver.com')
#(or as part of sendmail on 'nix)

This often gives you far less "spam points" than if you try to send a mail with a yahoo.com mail address from e.g. a gmail.com smtp server, or using a quite public smtp server using the email address from a specific company.

Try also to Google about how to avoid ending up in the trash, e.g. http://mailchimp.com/resources/guides/how-to-avoid-spam-filters/html/

FtLie
  • 773
  • 4
  • 14