use strict; use warnings; use Net::SMTP::TLS; use MIME::Entity; my $msg = MIME::Entity->build( From => 'xxxx@gmail.com', To => 'xxxx@gmail.com', Subject => 'JPG', Type => 'multipart/mixed', ); $msg->attach(Type => 'image/jpeg', Path => 'd05_24365339.jpg', Encoding => '-SUGGEST', ); my $data_send = $msg->stringify(); =head opendir my $dh, "."; for (readdir $dh){ $msg->attach( Type => 'image/jpeg', Path => $_, Filename => $_, Disposition => 'attachment', ) if /jpg$/; print if /jpg$/; } =cut my $mailer = new Net::SMTP::TLS( 'smtp.gmail.com', Hello => 'andy.com', Port => 587, User => 'xxxxx@gmail.com', Password=> 'xxxxxx', Timeout => 1200, Debug => 1, ); $mailer->to('xxxx@gmail.com'); $mailer->data; $mailer->datasend($data_send); $mailer->dataend; $mailer->quit;