este es el codigo del segundo programa que les avia dicho, para que me funcionara tube que ponerle en comentario el codigo que estaba en el load que eso pregunaba por un servidor de correo, porque yo no estoy usando el iss yo uso es este Free SMTP Server
y cuando abri mi servidor de correo y envie el correo por el programa se veia qeu se enviaba pero cuando reviso mi correo no me llegan en las ip puse las ip de mi pc
' © Microsoft Corporation. Reservados todos los derechos.
Imports System.Net.Mail
Imports System.Text
Imports System.ServiceProcess
Public Class MainForm
Inherits System.Windows.Forms.Form
Dim arlAttachments As ArrayList
''' <summary>
''' Controla el evento de clic del botón Browse. Utiliza un control OpenFileDialog para permitir al
''' usuario que busque los datos adjuntos que desea enviar, los cuales se agregan después a una lista de matrices de
''' objetos MailAttachment.
''' </summary>
Private Sub Browse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Browse.Click
With odlgAttachment
.InitialDirectory = "C:\"
.Filter = "All Files (*.*)|*.*|HTML Files (*.htm;*.html)|*.htm|Microsoft Mail Documents (*.msg)|*.msg|Word Documents (*.doc)|*.doc|Excel Files(*.xl*)|*.xl*|Excel Worksheets (*.xls)|*.xls|Excel Charts (*.xlc)|*.xlc|PowerPoint Presentations (*.ppt)|*.ppt|Text Files (*.txt)|*.txt"
.FilterIndex = 1
' El control OpenFileDialog sólo contiene un botón Open y no un botón OK.
' Pero como no hay ninguna enumeración DialogResult.Open se utiliza DialogResult.OK.
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
If IsNothing(arlAttachments) Then
arlAttachments = New ArrayList()
' Borre el texto predeterminado "(No hay datos adjuntos)" de la vista de lista
Attachments.Items.Clear()
End If
arlAttachments.Add(New Attachment(.FileName))
' Sólo desea mostrar el nombre del archivo. La propiedad OpenFileDialog.FileName
' contiene la ruta de acceso completa, así que divida la ruta e invierta el orden
' para obtener la primera cadena de la matriz, que es justamente el nombre del archivo.
Dim strFileName() As String = .FileName.Split(New Char() {CChar("\")})
System.Array.Reverse(strFileName)
Attachments.Items.Add(strFileName(0))
End If
End With
End Sub
''' <summary>
''' Controla el evento de clic del botón Send. Esta rutina comprueba direcciones de correo electrónico
''' válidas, crea el cuerpo del mensaje mediante StringBuilder, crea un
''' mensaje de correo y, a continuación, intenta enviarlo.
''' </summary>
Private Sub Send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Send.Click
If ToAddress.Text = "" Or From.Text = "" Then
MsgBox("You must enter both To and From email addresses.")
Exit Sub
End If
' Utilice la clase StringBuilder en lugar de la concatenación de cadenas tradicional.
' Ésta es la forma óptima de crear cadenas porque es capaz de modificar
' el búfer subyacente en lugar de tener que hacer una copia de la cadena para
' cada concatenación.
Dim sb As New StringBuilder()
' Cree el cuerpo del mensaje de correo electrónico.
sb.Append("The following email was sent to you from the Send Mail " & _
"sample application:")
sb.Append(vbCrLf)
sb.Append(vbCrLf)
sb.Append("SUBJECT: ")
sb.Append(Trim(Subject.Text))
sb.Append(vbCrLf)
sb.Append(vbCrLf)
sb.Append("MESSAGE: ")
sb.Append(Trim(Body.Text))
sb.Append(vbCrLf)
' Para crear un mensaje de correo, basta con crear una instancia de una clase y
' definir algunas propiedades.
Dim mailMsg As New MailMessage(From.Text.Trim, ToAddress.Text.Trim)
With mailMsg
If Not String.IsNullOrEmpty(CC.Text) Then
.CC.Add(New MailAddress(CC.Text.Trim))
End If
If Not String.IsNullOrEmpty(BCC.Text) Then
.Bcc.Add(New MailAddress(BCC.Text.Trim))
End If
.Subject = Subject.Text.Trim
.Body = sb.ToString
If Not IsNothing(arlAttachments) Then
Dim mailAttachment As Attachment
For Each mailAttachment In arlAttachments
.Attachments.Add(mailAttachment)
Next
End If
End With
' Defina el nombre de SmtpServer. Este nombre puede ser alguno de los siguientes según
' la configuración de seguridad local:
' a) Dirección IP local (suponiendo que el servidor SMTP del equipo local tenga
' privilegios para enviar mensajes a través de un servidor de seguridad local, si hay alguno).
'
127.0.0.1: el bucle invertido del equipo local.
' c) "smarthost" o el nombre o la dirección IP del servidor de intercambio que
' utiliza para la mensajería. Esto es lo que se necesita normalmente si se utiliza
' un servidor de seguridad corporativo.
' Utilice el control de errores estructurado para intentar enviar el mensaje de correo electrónico y
' proporcionar información al usuario sobre el éxito o el fracaso del
' envío.
Try
Dim client As New SmtpClient("smarthost")
client.Send(mailMsg)
Attachments.Items.Clear()
Attachments.Items.Add("(No Attachments)")
MessageBox.Show("Your email has been successfully sent!", _
"Email Send Status", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Catch exp As Exception
MessageBox.Show("The following problem occurred when attempting to " & _
"send your email: " & exp.Message, _
Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
''' <summary>
''' Controla el evento Load del formulario. Comprueba que el Servicio SMTP está
''' instalado y en ejecución.
''' </summary>
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, MyBase.Load, MyBase.Load, MyBase.Load
' Asegúrese de que el Servicio SMTP está instalado.
Dim services() As ServiceController = ServiceController.GetServices
Dim service As ServiceController = Nothing
Dim blnHasSmtpService As Boolean = False
' Recorra en bucle todos los servicios del equipo y busque el Servicio SMTP.
For Each service In services
If service.ServiceName.ToLower = "smtpsvc" Then
blnHasSmtpService = True
Exit For
End If
Next
If Not blnHasSmtpService Then
MessageBox.Show("You do not have SMTP Service installed on this " & _
"machine. Please check the Readme file for information on how " & _
"to install SMTP Service.", Me.Text, _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
' Asegúrese de que el Servicio SMTP se está ejecutando. En caso contrario, inícielo.
If Not service.Status = ServiceControllerStatus.Running Then
Try
service.Start()
Catch
MsgBox("There was an error when attempting " & _
"to start SMTP Service. Please consult the Readme " & _
"file for more information.")
End Try
End If
' Rellene el cuadro combinado Priority con los valores de MailPriority
With Priority
.Items.AddRange(New String() {"Normal", "Low", "High"})
.SelectedIndex = 0
End With
End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
Me.Close()
End Sub
End Class