No es el Net::SMTP el que debes usar, sino el Net::SMTP::TLS.
Si el puerto de conexión es el 465, entonces la comunicación va encriptada con TLS, así que necesitas ese protocolo.
Si el puerto fuera el 25 o el 587, no sería necesario, y podrías utilizar Net::SMTP.
Este ejemplo lo he sacado de
un artículo del 2014, así que habrá cambiado algo en estos tres años. Por ejemplo, no me cuadra el uso del protocolo TLS con el puerto 587, pero todo depende de lo que diga la documentación de Micro$oft.
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use Net::SMTP::TLS;
#
my $mailer = new Net::SMTP::TLS(
'smtp.office365.com',
Port => 587,
Hello => '',
User => 'Username-Email-ID',
Password=> 'Password',
Debug => 1) || die "Cannot connect to smtp server";
$mailer->data;
$mailer->datasend("\n");
$mailer->datasend("Sent from perl!");
$mailer->dataend;
$mailer->quit;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Repasa mi respuesta a otra de tus consultas:
Enviar email desde CGI::Application.
Otros enlaces que dan más soluciones: