• Publicidad

Error SMTP auth() contra office365

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Error SMTP auth() contra office365

Notapor audax » 2014-11-24 08:08 @381

Estimados,

Tengo un problemita con lo siguiente. Resulta que estoy intentando enviar un correo desde una máquina de Windows. Yo ocupo la librería MIME::Lite, y como servidor outlook.office365.com. Este el código.


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.         my $msg = MIME::Lite->new(
  2.                 From    => $remitente,
  3.                 To      => $destinatario,
  4.                 Subject => 'Reporte de Error '.$fecha,
  5.                 Type    => 'multipart/mixed'
  6.         );
  7.  
  8.     ### Add parts (each "attach" has same arguments as "new"):
  9.         $msg->attach(
  10.                 Type     => 'TEXT',
  11.                 Data     => 'Reporte de Errores.'
  12.         );
  13.        
  14.         if ($archivoerror == 1)
  15.         {
  16.                 $nombreArchivoError = &nombreError();
  17.                
  18.                 $msg->attach(
  19.                 Path     => 'Temp/'.$nombreArchivoError,
  20.                 Type     => 'application/msword',
  21.                 Encoding => 'base64',
  22.                 );
  23.         }
  24.        
  25.         ### use Net:SMTP to do the sending
  26.         $msg->send('smtp',$host ,AuthUser=>$remitente,AuthPass=>$pass,Debug=>1 );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


y me da el siguiente resultado.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
MIME::Lite::SMTP>>> MIME::Lite::SMTP
MIME::Lite::SMTP>>>   Net::SMTP(2.32)
MIME::Lite::SMTP>>>     Net::Cmd(2.30)
MIME::Lite::SMTP>>>       Exporter(5.68)
MIME::Lite::SMTP>>>     IO::Socket::INET(1.33)
MIME::Lite::SMTP>>>       IO::Socket(1.34)
MIME::Lite::SMTP>>>         IO::Handle(1.33)
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 220 BN1PR08CA0031.outlo
osoft ESMTP MAIL Service ready at Mon, 24 Nov 2014 13:04:04
MIME::Lite::SMTP=GLOB(0x3b48280)>>> EHLO localhost.localdom
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-BN1PR08CA0031.outlo
o [190.153.236.146]
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-SIZE 78643200
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-PIPELINING
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-DSN
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-ENHANCEDSTATUSCODES
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-STARTTLS
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-8BITMIME
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250-BINARYMIME
MIME::Lite::SMTP=GLOB(0x3b48280)<<< 250 CHUNKING
SMTP auth() command not supported on outlook.office365.com
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4



Si alguien caritativo me puede dar algún enlace o decir qué puedo hacer estaré muy agradecido.
Última edición por explorer el 2016-02-18 13:58 @624, editado 2 veces en total
Razón: mail => correo; maquina => máquina; codigo => código; algun => algún; que => qué; estare => estaré;
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594

Publicidad

Re: Error SMTP auth()

Notapor explorer » 2014-11-24 14:28 @644

Google me dice que ese servidor no tiene soporte para recibir peticiones SMTP externas. Que lo correcto sería usar smtp.office365.com
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error SMTP auth()

Notapor audax » 2014-11-25 15:25 @684

Gracias, explorer, por la respuesta. Me falta estudiar más los conceptos relacionados con el correo.
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594

Re: Error SMTP auth()

Notapor audax » 2015-11-04 09:50 @451

Retomando este tema después de un tiempo, cambié el hostmail y aparece el mismo mensaje. No sé qué puede ser, ya que con otros host que no sean de office365 funciona sin problemas. Gracias por todo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
MIME::Lite::SMTP>>> MIME::Lite::SMTP
MIME::Lite::SMTP>>>   Net::SMTP(2.34)
MIME::Lite::SMTP>>>     Net::Cmd(2.30)
MIME::Lite::SMTP>>>       Exporter(5.70)
MIME::Lite::SMTP>>>     IO::Socket::INET(1.33)
MIME::Lite::SMTP>>>       IO::Socket(1.36)
MIME::Lite::SMTP>>>         IO::Handle(1.34)
MIME::Lite::SMTP=GLOB(0x530f558)<<< 220 BN3PR15CA0018.outlook.office365.com Microsoft ESMTP MAIL Service ready at Wed, 4 Nov 2015 14:47:25 +0000
MIME::Lite::SMTP=GLOB(0x530f558)>>> EHLO localhost.localdomain

MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-BN3PR15CA0018.outlook.office365.com Hello [200.107.67.34]
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-SIZE 157286400
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-PIPELINING
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-DSN
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-ENHANCEDSTATUSCODES
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-STARTTLS
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-8BITMIME
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250-BINARYMIME
MIME::Lite::SMTP=GLOB(0x530f558)<<< 250 CHUNKING
SMTP auth() command not supported on smtp.office365.com
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594

Re: Error SMTP auth()

Notapor explorer » 2015-11-04 19:04 @836

Micro$oft tiene instrucciones para permitir el envío de correo de forma autenticada. Como verás, hay que cambiar el nombre del servidor y el puerto de entrega del correo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error SMTP auth()

Notapor audax » 2015-11-05 07:16 @345

Gracias por contestar, pero, ¿a qué te refieres con cambiar el servidor? Yo solo tengo los servidores smtp.office365.com y outlook.office365.com. ¿Te refieres a cambiar esto? ¿Algo así como pop3.office365.com o mail.authsmtp.com? ¿Me puedes dar un ejemplo, por favor, que no entendí mucho cómo aplicar lo que dice el sitio https://www.authsmtp.com/outlook-2013/alternate-port.html en Perl? Por el puerto tendría que ocupar el 587.
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594

Re: Error SMTP auth()

Notapor explorer » 2015-11-06 13:41 @612

En el enlace pone que hay que cambiarlo a mail.authsmtp.com

Y el puerto, el 2525.


Pero... hay otra solución.

1) Hay que tener una cuenta de Office365

2) Instalar en el ordenador el módulo Net::SMTP:TLS

3) Cambiar las partes marcadas con '<=='
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::SMTP::TLS;  
  4.  
  5. #
  6. my $mailer = new Net::SMTP::TLS(  
  7.     'smtp.office365.com',
  8.     Port    =>      587,  
  9.     Hello   =>      '',
  10.     User    =>      'Username-Email-ID',                # <==
  11.     Password=>      'Password',                         # <==
  12.     Debug   => 1) || die "Cannot connect to smtp server";
  13.  
  14. $mailer->mail('[email protected]');             # <==
  15. $mailer->to('[email protected]');                 # <==
  16. $mailer->data;  
  17. $mailer->datasend("\n");  
  18. $mailer->datasend("Sent from perl!");  
  19. $mailer->dataend;  
  20. $mailer->quit;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error SMTP auth()

Notapor audax » 2015-11-10 10:36 @484

Gracias, explorer, siempre tan amable en responder.

La primera parte no me funciona me da error de autenticación (las credenciales que le ingreso son las correctas).
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
MIME::Lite::SMTP=GLOB(0x5e2d898)<<< 535 5.7.0 authentication failed
SMTP auth() command failed:
5.7.0 authentication failed
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

La segunda parte tampoco me funcionó: tengo las librerías actualizadas, sobre todo la IO-socket-SSl que indica el error
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
invalid SSL_version specified at c:/Perl64/site/lib/IO/Socket/SSL.pm line 568.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

¿Algún camino de por dónde pueda seguir jugando con esto? Gracias por todo.
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594

Re: Error SMTP auth()

Notapor explorer » 2015-11-10 16:44 @739

Cuando empiezan a salir esos errores... empiezo a creer que hay un problema en la instalación de las bibliotecas.

Yo desinstalaría las bibliotecas instaladas a mano, y probaría a instalar las que me ofrece el propio sistema (el gestor de paquetes de tu sistema). Así tendré la garantía de que todas las versiones son compatibles entre sí, pues precisamente eso es lo que indica el último error: que estamos intentando usar una versión SSL diferente de la que IO::Socket::SSL es capaz de manejar.

Hay otra opción mucho mejor y más rápida: no usar Microsoft.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Error SMTP auth()

Notapor audax » 2016-02-18 13:27 @602

Después de un tiempo retomé este proyecto y pude hacer funcionar el envío de correo. Cambié las librerías por este código.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Email::Sender::Simple qw(sendmail);
  2. use Email::Sender::Transport::SMTPS;
  3. use Email::Simple ();
  4. use Email::Simple::Creator ();
  5.  
  6. my $smtpserver = 'smtp.office365.com';
  7. my $smtpport = 587;
  8. my $username = '[email protected]';
  9. my $password = "xxxx";
  10.  
  11. my $transport = Email::Sender::Transport::SMTPS->new({
  12.   host => $smtpserver,
  13.   ssl  => 'starttls',
  14.   port => $smtpport,
  15.   sasl_username => $smtpuser,
  16.   sasl_password => $smtppassword,
  17.   debug => 1,
  18. });
  19.  
  20. my $email = Email::Simple->create(
  21.   header => [
  22.     To      => '[email protected]',
  23.     From    => '[email protected]',
  24.     Subject => 'Hi!',
  25.   ],
  26.   body => "This is my message\n",
  27. );
  28.  
  29. sendmail($email, { transport => $transport });
  30.  
  31. 1;
  32.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Espero que a alguien le sirva. Y gracias a todos, en especial a explorer, por el tiempo que le dedica a que esto siga adelante.

Salu2.
audax
Perlero nuevo
Perlero nuevo
 
Mensajes: 56
Registrado: 2013-06-03 13:16 @594


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados