Yo con el smtp de gmail me anda perfecto pero con el de arnet y el de un dominio k tngo k se llama gtinet me tirar error de espera o conexion no se por que.
Tengo un programita echo en consola muy sencillo que no se que difrencia tiene que el smtp de arnet y gtinet me lo toma bien ahi les muestro los dos codigos !
Este es el que quiero que ande bien esta completo y listo pero no me agarra los smtp de arnet y gtinet solo los de mi gmail
Código:
ESTE ME FUNCINAN TODOS LOS SMTP PERO ES SIMPLE Y EN CONSOLA'Espacio de nombres necesario Imports System.Net.Mail Imports System.Threading Public Class FrmMail 'variable array para adjuntos Dim Adjuntos() As String 'instanciar la hebra Dim oHebra As Thread 'Objeto SMTP Dim SMPT As New SmtpClient 'Procedimiento Private Sub EnviarMail(ByVal StrDe As String, ByVal StrPara As String, _ ByVal StrAsunto As String, ByVal sAdjunto() As String, _ ByVal StrMensaje As String) Try 'variable tipo mensaje con parametros De: Para: Dim Msg As New MailMessage(New MailAddress(StrDe), New MailAddress(StrPara)) 'asunto Msg.Subject = StrAsunto 'mensaje Msg.Body = StrMensaje 'ADJUNTOS For Each FAdjunto As String In sAdjunto If Not FAdjunto = "" Then 'Objeto tipo attachment Dim Adjunto As New Attachment(FAdjunto) 'agregar adjunto al objeto mensaje Msg.Attachments.Add(Adjunto) End If Next 'DATOS SMTP 'Credenciales SMPT.Credentials = New System.Net.NetworkCredential _ ("[email protected]", "**********") 'Host, Puerto, autenticacion SMPT.Host = "smtp.gmail.com" SMPT.Port = 587 SMPT.EnableSsl = True SMPT.Timeout = 10 'Enviar SMPT.Send(Msg) 'regresar cursor y controles a modo normal Me.Cursor = Cursors.Default btnEnviar.Enabled = True ProgressBar1.Visible = False Label6.Visible = False Catch ex As Exception 'regresar cursor y controles a modo normal Me.Cursor = Cursors.Default btnEnviar.Enabled = True ProgressBar1.Visible = False Label6.Visible = False MsgBox(ex.Message) End Try End Sub 'función para validar formato de dirección Email Function ValidateEmail(ByVal email As String) As Boolean Dim emailRegex As _ New System.Text.RegularExpressions.Regex( _ "^(?<user>[^@]+)@(?<host>.+)$") Dim emailMatch As _ System.Text.RegularExpressions.Match = emailRegex.Match(email) Return emailMatch.Success End Function Private Sub TxtDe_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TxtDe.Validating 'si la validación no pasa se visualiza el errorprovider If ValidateEmail(TxtDe.Text.Trim) Then e.Cancel = False ErrorProvider1.SetError(TxtDe, "") Else e.Cancel = True ErrorProvider1.SetError(TxtDe, "La dirección de correo no es válida. Presione F1 para obtener ayuda.") End If End Sub Private Sub TxtPara_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TxtPara.Validating If ValidateEmail(TxtPara.Text.Trim) Then e.Cancel = False ErrorProvider1.SetError(TxtPara, "") Else e.Cancel = True ErrorProvider1.SetError(TxtPara, "La dirección de correo no es válida. Presione F1 para obtener ayuda.") End If End Sub Private Sub FrmMail_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' se establece el texto de ayuda al pulsar F1 en los textboxs HelpProvider1.SetHelpString(TxtDe, "Una dirección de correo válida debe tener el formato: [email protected]") HelpProvider1.SetHelpString(TxtPara, "Una dirección de correo válida debe tener el formato: [email protected]") End Sub Private Sub BtnAdjuntos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdjuntos.Click 'para obtener adjuntos 'establecemos filtros para mostrar todos los archivos OpenFileDialog1.Filter = "Todos los archivos|*.*" 'mostramos el dialogo OpenFileDialog1.ShowDialog() 'agregamos la ruta del adjunto CboAdjunto.Items.Add(OpenFileDialog1.FileName) 'visualizamos la ruta CboAdjunto.SelectedIndex = CboAdjunto.Items.Count - 1 End Sub Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click 'obtenemos los adjuntos ReDim Preserve Adjuntos(0 To CboAdjunto.Items.Count - 1) For i As Integer = 0 To Adjuntos.Length - 1 Adjuntos(i) = CboAdjunto.Items.Item(i).ToString Next Me.Cursor = Cursors.WaitCursor btnEnviar.Enabled = False 'poner en marcha la hebra oHebra = New Thread(AddressOf Envio) ProgressBar1.Visible = True Label6.Visible = True oHebra.Start() End Sub Private Sub Envio() 'al finalizar el envío, abortar la hebra Control.CheckForIllegalCrossThreadCalls = False EnviarMail(TxtDe.Text.Trim, TxtPara.Text.Trim, TxtAsunto.Text, Adjuntos, TxtMensaje.Text) oHebra.Abort() End Sub Private Sub BtnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancel.Click 'cancelamos la operación SMPT.SendAsyncCancel() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.Click End Sub End Class
Código:
Imports System Imports System.Net Imports System.Net.Mail Module Email Sub Main() 'datos del servidor… Dim host As String = "smtp.arnet.com.ar" 'ingreso el servidor smtp Dim puerto As Integer = 25 'indico en que puerto hay que conectarse al servidor 'datos de la cuenta… Dim usuario As String = "[email protected]" 'indico mi nombre de usuario Dim contrasenia As String = "*******" 'indico mi password 'datos del mensaje en si mismo… Dim de As String = "[email protected]" 'ingreso el mail de origen (mi cuenta) Dim para As String = "[email protected]" 'ingreso el mail del destinatario Dim asunto As String = "una purefghfghfghfghfgbaaa con adjunto" 'indico cual es el asunto del mensaje Dim cuerpo As String = "lagopara vhfghfghfghfghfghfghfger" 'escribo el mensaje en si Try Dim mensaje As MailMessage = New MailMessage(de, para, asunto, cuerpo) 'creo el mensaje Dim clienteSMTP As SmtpClient = New SmtpClient(host, puerto) 'creo la conexion con el servidor clienteSMTP.UseDefaultCredentials = False 'no hay que usar las credenciales por defecto clienteSMTP.Credentials = New System.Net.NetworkCredential(usuario, contrasenia) 'hay que usar mis propias credenciales clienteSMTP.Send(mensaje) 'envio el mensaje y listo! clienteSMTP.EnableSsl = True 'Aviso que ya lo envié… Console.WriteLine("Mensaje enviado exitosamente.") Catch ex As Exception Console.WriteLine("Ha ocurrido un error: " + ex.Message) Finally Console.WriteLine("Presione ENTER para salir…") Console.ReadLine() End Try End Sub End Module
Desde ya muchas gracias !