ahtonio   07-07-2022, 10:12
#1
Hola, desde hace mucho, mucho tiempo uso el código que se publicó, en el foro para enviar mails a traves de gmail como smtp externo y funcionaba a las mil maravillas.

Se ha actualizado la política de google así:

Aplicaciones menos seguras y la cuenta de GooglePara proteger tu cuenta, a partir del 30 de mayo del 2022, ​​Google dejará de admitir aplicaciones y dispositivos de terceros que te pidan que inicies sesión en tu cuenta de Google usando solo tu nombre de usuario y contraseña.
Importante: Este plazo no se aplica a los clientes de Google Workspace o de Google Cloud Identity. La fecha en que el cambio se implementará para estos clientes se anunciará en el blog de Workspace más adelante.
Para obtener más información, sigue leyendo.

Y desde ese momento no funciona mi rutina para enviar pedidos que iba tan bien. He cambiado servidor, puerto, Encrypt, etc y no lo consigo.
Como veréis arrastro el problema desde mayo, no es que no lo haya probado. Incluso lo he intentado con un servicio propio de mi dominio y no consigo que se envie nada.  Me da error de Conexion failed y otro de EHLO.
¿Que hay que cambiar para seguir usándolo? o es gb.net.smtp que ha dejado de funcionar (cosa que dudo)
Me da igual usar una cuenta de mi dominio si con gmail ya no se puede hacer... pero como lo arreglo o configuro?

Gracias

El código es:
Código:
Public Sub enviarmail(aTo As String[], cAsunto As String, cTexto As String, Optional cFrom As String, Optional bcc As String[], Optional adjuntos As Variant[])

    Dim hfile As File
    Dim archivo As String
    Dim destinatarios As String
    Dim textoplano As String
    Dim destino As String
    Dim enviador As New SmtpClient
    Dim campos As New String[]

    Application.busy = 1
    enviador.host = usu.mihost '"miservidor de correo"
    enviador.user = usu.miusuariodecorreo ' "miusuariodecorreo"
    enviador.password = usu.miclavedeusuariodecorreo ' "miclavedeusuariodecorreo"

    enviador.Encrypt = Net.SSL
    If Not cFrom Then cFrom = usu.micuentacorreo ' "micuenta@remitentedecorreo"
    enviador.Alternative = True
    enviador.Port = 465
    enviador.From = cFrom
    For Each destino In aTo
        enviador.to.Add(destino)
    Next
    enviador.Subject = cAsunto
    ' enviador.Add(cTexto, "text/plain")
    enviador.Add(cTexto, "text/html")
    Try enviador.send
    If Error Then
        Application.busy = 0
        Message.Error("No se ha podido enviar el mensaje\n" & Error.Text)
        Return
    Endif
    Application.busy = 0
    Message.Info("Mensaje enviado")
    ' Como no ha habido error, guardamos los datos de enviado
    ' para saber que se ha enviado correctamente... (persistencia)
    archivo = Settings["DATOS/basedatos"] &/ "correo/enviados.csv"
    If Not Exist(archivo) Then
        ' Aqui puede fallar sin hay mas de 1 nivel de
        ' directorio sin crear por encima de archivo.
        If Not Exist(File.Dir(archivo)) Then

            Print "Como no existe creamos " & File.Dir(archivo)
            Try Mkdir File.Dir(archivo)
            If Error Then Print Error.Text

        Endif

        campos.Add("fecha")
        campos.Add("destinatiarios")
        campos.Add("asunto")
        campos.Add("desde")
        campos.Add("mensaje")
        CSVwriter.create(archivo, campos)
    Else
        CSVwriter.Open(archivo)
    Endif

    destinatarios = aTo.Join("|")
    ' Cambio los ; del texto por } y las newline por |
    ' Al leer habrá que reconstruir
    'textoplano = Replace(cTexto, ";", "}")
    'textoplano = Replace(textoplano, gb.NewLine, "|")
    textoplano = Replace(Replace(ctexto, ";", "}"), gb.newline, "|")
    campos.Clear
    campos.Add(Format(Date(), "dd/mm/yyyy"))
    campos.Add(destinatarios)
    campos.Add(cAsunto)
    campos.Add(usu.miusuariodecorreo)
    campos.Add(textoplano)
    CSVwriter.Write(campos)
    CSVwriter.Close()

End
Última modificación: 07-07-2022, 12:27 por ahtonio.
jguardon   07-07-2022, 11:17
#2
Me temo que ya nos podemos olvidar de smtp para Google.

Como bien dices, las políticas de Google han cambiado y ahora ya sólo es posible enviar correos mediante autenticación Oauth2, que no es precisamente algo trivial en su implementación.

Busca por ese término y verás de lo que hablo. No estaría mal crear un componente o librería para implementar Oauth2 a nivel general para cualquier otro servicio, ya que desde hace bastante tiempo es la tendencia.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
ahtonio   07-07-2022, 12:26
#3
SOLUCIONADO
Después de tanto tiempo he encontrado la solución que se aplica para PHPmailer y por supuesto para Gambas.

Se puede ver en youtube-video-smtp.mail.com

Gracias de todos modos. Tenía que pedir ayuda al foro para que apareciese la solución. Smile

Espero le sirva a quien la haya dejado de funcionar. Es configuración de cuenta google
Última modificación: 07-07-2022, 12:28 por ahtonio.
jguardon   07-07-2022, 17:03
#4
Muy buena solución, te felicito por encontrarla y compartirla y al autor del vídeo también.

Saludos

P.D. Lo he probado con una cámara térmica IP que envía correos cuando detecta alta temperatura en las personas y funciona igual que antes. Perfecto!!

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
omoreno   07-07-2022, 19:41
#5
(07-07-2022, 12:26)ahtonio escribió: SOLUCIONADO
Después de tanto tiempo he encontrado la solución que se aplica para PHPmailer y por supuesto para Gambas.

Se puede ver en youtube-video-smtp.mail.com

Gracias de todos modos. Tenía que pedir ayuda al foro para que apareciese la solución. Smile

Espero le sirva a quien la haya dejado de funcionar. Es configuración de cuenta google

Saludos ahtonio.

¡ EXCELENTE APORTE !.

Hace unos días ya le había dicho a un micro empresario que se habían acabado los servicios de correos gratis de Gmail en su WebApp (sospechamos por estas crisis que nos friegan cada vez peor...), no le quedo otra que iniciar los tramites para que alquilaran temporalmente un correo con una empresa amiga, pero con esta solución hoy a tiempo se detuvo el gasto adicional Cool

Gracias.
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.