Vaya, esta vez si que ha sido un fallo mio, no tuyo.
aquí tienes el código corregido, copiar y listo... no tienes que borrarle nada esta vez.
EDITO:
Ah, por cierto, elimina del código las condicionales de compilación...
la linea donde pone:
y:
...si quieres poder utilizar los métodos asíncronos también.
El fallo era que precisamente esa sobrecarga que usas (y algunas otras más), al no especificar ningún archivo adjunto, le termina pasando una colección de archivos adjuntos nula al método principal 'SendGMail", y este intenta leer la colección nula, provocando así una excepción de referencia nula...
¿Solución?, fácil:
PD: existe el mismo fallo de diseño en la clase que envia correos por live/hotmail.
saludos
aquí tienes el código corregido, copiar y listo... no tienes que borrarle nada esta vez.
EDITO:
Ah, por cierto, elimina del código las condicionales de compilación...
la linea donde pone:
Código [Seleccionar]
#If NET45 OrElse NET46 Then
y:
Código [Seleccionar]
#End If
...si quieres poder utilizar los métodos asíncronos también.
El fallo era que precisamente esa sobrecarga que usas (y algunas otras más), al no especificar ningún archivo adjunto, le termina pasando una colección de archivos adjuntos nula al método principal 'SendGMail", y este intenta leer la colección nula, provocando así una excepción de referencia nula...
Código (vbnet) [Seleccionar]
Private Shared Sub SendGMail(ByVal username As String,
ByVal password As String,
ByVal subject As String,
ByVal body As String,
ByVal addresses As MailAddressCollection,
ByVal attachments As Collection(Of Attachment),
ByVal isBodyHtml As Boolean)
...
For Each attachment As Attachment In attachments
msg.Attachments.Add(attachment)
Next attachment
...
¿Solución?, fácil:
Código (vbnet) [Seleccionar]
If (attachments IsNot Nothing) Then
For Each attachment As Attachment In attachments
msg.Attachments.Add(attachment)
Next attachment
End If
PD: existe el mismo fallo de diseño en la clase que envia correos por live/hotmail.
saludos