Enviar Mail Con Adjunto/s Desde Gambas3


Ir a la página 1, 2, 3  Siguiente

Objetivo: Enviar Mail Con Adjunto/s Desde Gambas3
Al final he tenido que volver al tema del E-Mail, que en el curro quieren enviar archivos por correo desde la aplicación. Una pequeña investigación y he terminado haciendo la siguiente función.
Public Sub enviarmail(aTo As String[], cAsunto As String, cTexto As String, cFrom As String, Optional adjuntos As String[] = [], Optional bcc As String[] = [])

Dim enviador As New SmtpClient
Dim fich, mime, fname As String
Dim n As Integer
Dim s as String
enviador.debug = True
enviador.host = mcomun.mailserver["host"]
enviador.user = mcomun.mailserver["user"]
enviador.password = mcomun.mailserver["password"]
enviador.Alternative = False 'con esto le indicas que el texto puede ir en varios formatos para que el cliente de correo eliga. ¡No activar si hay adjuntos!.
enviador.From = cFrom
For Each s In aTo
enviador.To.Add(s)
Next
For Each s In bcc
enviador.bcc.Add(s)
Next
enviador.Subject = cAsunto
enviador.Body = cTexto
For Each fich In adjuntos
Exec ["file", "-bi", fich] To mime
mime = Left(mime, InStr(mime, ";") - 1)
fname = Right(fich, - RInStr(fich, "/"))
enviador.Add(File.Load(fich), mime, fname)
Next
enviador.send

End


Corta, simple y funcional. Veréis que me apoyo en el comando file para extraer el mime-type de cada adjunto y veréis que he omitido, por seguridad anti-spammers, el CC, sólo admito BCC, que ya hemos tenido lío con eso en la empresa.

Espero que os sea útil.

Saludos

última edición por shordi el Sabado, 31 May 2014, 09:30; editado 5 veces
Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Shordi:

Muy útil tu código, gracias por compartir

Saludos

Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Lo he modificado, que no sé por qué (supongo que lo han actualizado) en la línea:

enviador.to = ato
' y en
enviador.bcc = bcc


falla y dice que to y bcc son de sólo lectura. Lo miro en las ayudas y efectivamente es así pero hace unos días funcionaba sin problemas .

En fin...

Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Tiene pinta de un nuevo bug, habria que comentarlo en las listas a Benoit.

Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Si es un bug es que ya lo han corregido, digo. Ahora se comporta tal como dice la documentación. Mejor dejarlo así.

Saludos.

Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Eectivamente, algo tiene raro. Al añadir los destinatarios antes tenía el código:

For n = 0 to ato.count -1
enviador.To.Add(ato[n])
Next


Que el otro día funcionaba sin problemas. Hoy, al probarlo, abortaba en la línea que llama a la función, sin ni siquiera entrar en ella, con el mensaje "No return Value".

He cambiado el código por:
For Each s In aTo
enviador.To.Add(s)
Next

Y ahora sí funciona sin problemas (de momento).
Tal vez sea un bug o tal vez sea cosa de punteros y demás que, supongo, no es lo mismo una variable String que un elemento dentro de una tabla pasado por referencia desde otra función...

Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
como pequeño aporte

estrella_de_galicia escribió: 
Como enviar mails desde la consola, empleando servidor externo SMTP.

Algo muy útil para nuestros scripts, es el envío de e-mails a nuestra cuenta de correo.

En azul, parámetros a modificar.

# true | mailx -n -a archivo -r remitente -s asunto -S smtp=servidor-de-correo-saliente -S smtp-auth-user=usuario -S smtp-auth-password=password email-destinatario


Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
¡Trampa, trampa! ¡Usas programas externos, pecadorrrrrrr!

Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
hola gente, soy nuevo en esto de programar orientado a objetos y tambien en Gambas3
estoy haciendo una aplicacion administrativa para mi local de computacion y una de las cosas que me estan complicando es el envio de email desde la aplicacion
soy consiente de ,mis limitaciones, solo necesitaria un ejemplo completo que funcione para poder aprender
he insertado y tratado de usar la funcion de este post ,pero me da errores de incongruencia de tipo de datos... voy a seguir buscando documentacion y data en internet, pero si alguno se apiada acepto cualquier ayuda
y muchas gracias por tomarce el tiempo de leer esto !
saludos

Fernando

Perfil MP  
Objetivo: Re: Enviar Mail Con Adjunto/s Desde Gambas3
Ese hilo es algo viejo. La función para enviar correo tal como la utilizo sin ningún problema ahora, es ésta:

Public Function sendmail(sFrom As String, aTo As String[], sSubject As String, sBody As String, cServer As Collection, Optional aBcc As String[], Optional aAttached As String[], Optional ldebug As Boolean) As Boolean

Dim SmtpC As New SmtpClient
Dim s, cad, fich, cmime, fname As String

SmtpC.debug = ldebug
SmtpC.host = cServer["host"]
SmtpC.user = cServer["user"]
SmtpC.password = cServer["password"]
SmtpC.Encrypt = IIf(cServer["Encrypt"], cServer["Encrypt"], Net.SSL)
SmtpC.Alternative = False
SmtpC.From = sFrom
For Each s In aTo
SmtpC.To.Add(Replace(s, " ", ""))
Next
SmtpC.Subject = sSubject
SmtpC.Body = sBody
If Not IsNull(aAttached) Then
For Each fich In aAttached
Exec ["file", "-bi", fich] To cmime
cmime = Left(cmime, InStr(cmime, ";") - 1)
fname = Right(fich, - RInStr(fich, "/"))
SmtpC.Add(File.Load(fich), cmime, fname)
Next
Endif
If Not IsNull(abcc) Then
For Each s In abcc
SmtpC.bcc.Add(s)
Next
Endif
SmtpC.send
Return True

Catch
print Error.text;;Error.where
Return False

End


Si algo no entiendes, pregunta, que para eso estamos.

Perfil MP  
Ir a la página 1, 2, 3  Siguiente

Página 1 de 3


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4571s (PHP: -67% SQL: 167%)
Consultas SQL: 46 - Debug off - GZIP Activado