VB.Net - Enviar email

Ahora te voy a explicar como mandar un e-mail con visual basic .NET

Es bastante sencillo, esta sería la función:

Private Sub EnviarCorreo()


Dim smtpCliente As New
System.Net.Mail.SmtpClient("smtp.tudominio.com", 25)
Dim ELCorreo As New
System.Net.Mail.MailMessage("elqueenvia@tudominio.com",
"elquerecibe@dominio.com", "Asunto", "Mensaje")
smtpCliente.Credentials = New System.Net.NetworkCredential("Usuario", "Contraseña")
smtpCliente.Send(ELCorreo)

End Sub



Esa es la función, solo tienes que sustituir los datos por los tuyos :)

Por supuesto está función la podrás parametrizar por ejemplo, con todos los datos parametrizados.


Private Sub EnviarCorreo(ByVal Smtp As String, ByVal De As String, ByVal Para
As String, ByVal Asunto As String, ByVal Mensaje As String, ByVal Usuario As
String
, ByVal Pass As String)


Dim smtpCliente As New System.Net.Mail.SmtpClient(Smtp, 25)
Dim ELCorreo As New
System.Net.Mail.MailMessage(De, Para, Asunto,
Mensaje)
smtpCliente.Credentials = New System.Net.NetworkCredential(Usuario,
Pass)
smtpCliente.Send(ELCorreo)


End Sub


Ya solo queda llamar a la función con los parametros y ¡vuala! mensaje enviado :)


Acabo de actualizar.... si quieres mandar un archivo adjunto, tendrias que poner esto antes del Send

Dim att As New System.Net.Mail.Attachment("RUTAARCHIVO.EXT")
ELCorreo.Attachments.Add(att)

Aceptar más de una conexión con Winsock

Os voy a mostrar, como podemos aceptar varias peticiones de conexión con Winsock. Aqui doy por hecho, de que conoceis Winsock, solo que está parte es mas rebuscada.

Bueno al tajo, la idea es, mantener el control winsock siempre a la escucha, cuando llegue una petición cargamos otro Winsock y a ese se la asignamos. Así podras tener tantas conexiones quieras!

Veamos, lo primero que tienes que hacer, en el modo diseño, ir a las propiedades del Winsock y en Index poner un 0 (cero). Así conseguimos poder crear un array de controles del Winsock.

Ahora lo pondremos a escuchar, pondremos el primero, ahora mismo el unico winsock que tenemos, que es Winsock1(0), yo lo he hecho en el Load, tu donde tu quieras, un botón, ect.

Private Sub Form_Load()

'Aqui pones el puerto que quieras
Winsock1(0).LocalPort = "666"

'dejo escuchando conexiones entrantes
Winsock1(0).Listen


End Sub
Bien, primero creamos una variable en General para controlar el numero de Winsock que vamos creando y para luego poder usarlos. Yo la he llamado N ( no me he comido mucho la cabeza)

Dim N as Integer

Ahora utilizaremos el evento ConnectionRequest, para aceptar la petición de conexión, pero hay que modificarlo para que nos pille que control usamos, es decir, añadir el Index (lo marco en rojo).

Ahora, hacer mágia! jiji



Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)

On Error Resume Next

'Comprobamos que el Index sea el 0, nuestro escuchador de por vida.
If Index = 0 Then
'Sumamos uno al contador de Winsocks
N = N + 1
'Cargamos un nuevo Winsock
Load Winsock1(N)
Winsock1(N).LocalPort = 0
Winsock1(N).Accept requestID 'Aceptamos la conexión

end if

end sub

Listo! Ya tendriamos un winsock conectado. Para usarlo sería por ejemplo:

Winsock(1).SenData "Ou yeah!"

Recuerda que en cada evento del Winsock, tendrás que añadir el Index as Integer.