use Mail::Sender; eval { Mail::Sender->new( {from => 'user@domain.local', smtp => 'mailserver.domain.local'}) ->OpenMultipart({ to => 'user@domain.remote', subject => 'Subject Here!', multipart => 'related', }) ->Part({ ctype => 'text/html', disposition => 'NONE', msg => <<'*END*'}) This is where your HTML Page will be *END* ->Attach({ description => 'image descr', ctype => 'image/jpeg', encoding => 'base64', disposition => "inline; filename=*;\r\nContent-ID: ", file => '/path/to/image.jpg' }) ->Close(); } or print "Error sending mail: $Mail::Sender::Error\n";