Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Email::Mime Errors

by Anonymous Monk
on Mar 17, 2010 at 07:51 UTC ( #829113=note: print w/replies, xml ) Need Help??


in reply to Email::Mime and Multiple Recipients

I've tried adding multiple emails to My $to. Besides that i have tried adding a My $to1. i don't want to send them as cc or bcc. But both of theses did not work for me. Is there an other way. If yes kindly specify. Thanx in advance.

You should show your efforts. Basically you need to loop

for my $to ( 'destination@one', 'destination@two', ...){ SendMySpam($to); }

Replies are listed 'Best First'.
Re^2: Email::Mime Errors
by Appy16 (Sexton) on Mar 18, 2010 at 07:07 UTC

    I tried the Loop as you said, but i'm recieving the following error. Single recipient is still working with previous method. But with the loop even the single recipient is not working.

    Error sending email: Email::Send::Gmail: error sending 'to' at /Library/Perl/5.10.0/Email/Send.pm line 252

    at /Library/Perl/5.10.0/Email/Send.pm line 252

    I tried it as follows :

    #!/usr/bin/perl use warnings; use LWP::Simple; use Email::Send; use Email::Send::Gmail; use Email::MIME::Creator; use IO::All; my $basefolder = "/Users/Abc/Desktop/"; my $from = "abc1\@gmail.com"; my $subject = "DAILY SOCIAL MEDIA SEARCH"; for my $to ( 'abc3\@gmail.com', 'abc2\@hotmail.com'){ my @parts = ( Email::MIME->create( attributes => { filename =>"M-B.csv", content_type =>"application/csv", disposition =>"attachment", Name =>$basefolder . "M-B.csv", }, body => io( $basefolder . "M-B.csv" )->all, ), ); my $email = Email::MIME->create( header => [ From => $from, To => $to, Subject => $subject, ], parts => [@parts] ); my $sender = Email::Send->new( { mailer => 'Gmail', mailer_args => [ username => 'abc1\@gmail.com', password => '1234qwerty', ] } ); eval { $sender->send($email) }; die "Error sending email: $@" if $@; }

    Something must be wrong with my for loop application. Kindly point it out.

      for my $to ( 'abc3\@gmail.com', 'abc2\@hotmail.com'){

      When you use single quotes for literal strings, you don't want the backslash before @ (the backslash will remain part of the string).

      my $from = "abc1\@gmail.com"; # double quotes my $to = 'abc3\@gmail.com'; # single quotes print "from: $from"; print "to: $to"; __END__ from: abc1@gmail.com to: abc3\@gmail.com # !!

      Those addresses are Email::Send::Gmail-internally being extracted from the To/Cc/Bcc headers using Email::Address->parse(), which doesn't identify something like abc3\@gmail.com as a valid address, so the final list of recipients is empty — as the error message is trying to tell you.

      #!/usr/bin/perl -l use Email::Address; @addresses = Email::Address->parse('abc3@gmail.com'); print "ok : @addresses"; @addresses = Email::Address->parse('abc3\@gmail.com'); print "not ok : @addresses"; __END__ ok : abc3@gmail.com not ok :
      I tried the Loop as you said, but i'm still recieving the following error.

      That doesn't make sense, you said you were able to send email before.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://829113]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2023-09-30 09:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?