-- sendmail, mailkit como principal
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports Extensiones
|
||||
Imports MailKit.Net.Smtp
|
||||
Imports MailKit.Security
|
||||
Imports MimeKit
|
||||
|
||||
Public Class ClsSisMail
|
||||
|
||||
@@ -50,7 +54,7 @@ Public Class ClsSisMail
|
||||
For Each ItemMail As ArchivoMail In Archivos
|
||||
|
||||
If ItemMail IsNot Nothing Then
|
||||
If ItemMail.Ruta <> "" AndAlso IO.File.Exists(ItemMail.Ruta) Then
|
||||
If ItemMail.Ruta <> "" AndAlso System.IO.File.Exists(ItemMail.Ruta) Then
|
||||
ItemMail.ArchivoBinario = StreamFile(ItemMail.Ruta)
|
||||
If ItemMail.NombreArchivo = "" Then ItemMail.NombreArchivo = Path.GetFileName(ItemMail.Ruta)
|
||||
ObjMail.Archivos.Add(ItemMail)
|
||||
@@ -75,6 +79,104 @@ Public Class ClsSisMail
|
||||
Return False
|
||||
End If
|
||||
|
||||
If ObjMail.ObjEmpresa.Soporte_Mail <> "" Then Return FinalSendOld(ObjMail)
|
||||
|
||||
Dim Retorno As Boolean = False
|
||||
Dim MensajeLOG As New StringBuilder
|
||||
|
||||
MensajeLOG.AppendFormat("From:'{0}' - Para:'{1}' - Asunto:'{2}' - CCP: '{3}' - Adjuntos: {4}", ObjMail.ObjEmpresa.SendMail, ObjMail.Para, ObjMail.Asunto, ObjMail.CCP, If(ObjMail.Archivos IsNot Nothing, ObjMail.Archivos.Count, 0))
|
||||
|
||||
Try
|
||||
|
||||
Dim Correo As New MimeMessage()
|
||||
Dim Mensaje As String = String.Empty
|
||||
Dim ArrayPara() As String = ObjMail.Para.Replace(",", ";").Split(";"c)
|
||||
Dim ArrayCCP() As String = ObjMail.CCP.Replace(",", ";").Split(";"c)
|
||||
Dim ArrayBCC() As String = ObjMail.CCO.Replace(",", ";").Split(";"c)
|
||||
|
||||
If ObjMail.De = String.Empty Then
|
||||
Correo.From.Add(New MailboxAddress(ObjMail.ObjEmpresa.SendMail, ObjMail.ObjEmpresa.SendMail))
|
||||
Else
|
||||
Correo.From.Add(New MailboxAddress(ObjMail.De, ObjMail.ObjEmpresa.SendMail))
|
||||
End If
|
||||
|
||||
If ArrayPara IsNot Nothing AndAlso ArrayPara.Length > 0 Then
|
||||
For Each CorreoPara As String In ArrayPara.Distinct
|
||||
If IsMail(CorreoPara.Trim) Then Correo.To.Add(New MailboxAddress(CorreoPara.Trim, CorreoPara.Trim))
|
||||
Next
|
||||
End If
|
||||
|
||||
If ArrayCCP IsNot Nothing AndAlso ArrayCCP.Length > 0 Then
|
||||
For Each CorreoCCPPara As String In ArrayCCP.Distinct
|
||||
If IsMail(CorreoCCPPara.Trim) Then Correo.To.Add(New MailboxAddress(CorreoCCPPara.Trim, CorreoCCPPara.Trim))
|
||||
Next
|
||||
End If
|
||||
|
||||
If ArrayBCC IsNot Nothing AndAlso ArrayBCC.Length > 0 Then
|
||||
For Each CorreoCCOPara As String In ArrayBCC.Distinct
|
||||
If IsMail(CorreoCCOPara.Trim) Then Correo.Bcc.Add(New MailboxAddress(CorreoCCOPara.Trim, CorreoCCOPara.Trim))
|
||||
Next
|
||||
End If
|
||||
|
||||
Correo.Subject = ObjMail.Asunto
|
||||
|
||||
Dim builder As New BodyBuilder()
|
||||
' Set the html version of the message text
|
||||
builder.HtmlBody = Mensaje & ObjMail.Body
|
||||
|
||||
Correo.Body = New TextPart("html") With {.Text = Mensaje & ObjMail.Body}
|
||||
'Correo.IsBodyHtml = True
|
||||
'Correo.Priority = Net.Mail.MailPriority.Normal
|
||||
If ObjMail.Archivos IsNot Nothing Then
|
||||
For Each Item As ArchivoMail In ObjMail.Archivos
|
||||
If Item.ArchivoBinario IsNot Nothing Then
|
||||
builder.Attachments.Add(Item.NombreArchivo, New MemoryStream(Item.ArchivoBinario))
|
||||
'Correo.Body.Attachments.Add(New MailKit.Attachment(Item.NombreArchivo, New MemoryStream(Item.ArchivoBinario)))
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
' Now we just need to set the message body and we're done
|
||||
Correo.Body = builder.ToMessageBody()
|
||||
|
||||
|
||||
Try
|
||||
Using SMTP As New SmtpClient()
|
||||
SMTP.Connect(ObjMail.ObjEmpresa.SendMailServer, ObjMail.ObjEmpresa.SendMailPuerto, SecureSocketOptions.Auto)
|
||||
SMTP.Authenticate(ObjMail.ObjEmpresa.SendMail, ObjMail.ObjEmpresa.SendMailPassword)
|
||||
|
||||
SMTP.Send(Correo)
|
||||
SMTP.Disconnect(True)
|
||||
End Using
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
Retorno = False
|
||||
MensajeLOG.AppendLine(" ")
|
||||
MensajeLOG.AppendFormat(" - Ocurrió un error al mandar correo.{0}", ex)
|
||||
End Try
|
||||
|
||||
ObjMail = Nothing 'destruyo el contenido
|
||||
|
||||
Correo.Dispose()
|
||||
Catch ex As Exception
|
||||
Retorno = False
|
||||
MensajeLOG.AppendLine(" ")
|
||||
MensajeLOG.AppendFormat(" - Ocurrió Cargar datos Correo.{0}", ex)
|
||||
End Try
|
||||
|
||||
MensajeLOG.ToString().GuardaLogMail()
|
||||
MensajeLOG.Clear()
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Private Function FinalSendOld(ObjMail As Mail) As Boolean
|
||||
|
||||
If ObjMail.Para = "" Then
|
||||
Dim Msg As String = $"No se especifico a remitente - {ObjMail.Asunto}"
|
||||
Msg.GuardaLogMail()
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim Retorno As Boolean = False
|
||||
Dim MensajeLOG As New StringBuilder
|
||||
|
||||
|
||||
Reference in New Issue
Block a user