Si te referias a eso, lo siento entonces charlie...
Creía otra cosa, ya sabes, que tu mensaje era uno de esos "cifrados", por decirlo de alguna manera.
A propósito, si necesitas insistir sobre respuestas en uno de tus hilos, utiliza la forma que has usado posteriormente (ya sabes, la de responder a tu hilo para que aparezca entre los recientes) y así evitaremos malentendidos como este...
E, insistiendo, lo siento.
De todos modos, mi primera respuesta a este hilo sigue yendo para aquellos que no quieren explicarse lo que deberían... Sin ningún ánimo de despreciar a nadie, solo lo digo por beneficio mútuo.
En cuanto a la pregunta que nos ha llevado a todo esto, no creo que pueda aportar una respuesta que explique como enviar un e-mail directamente desde visual basic, pues no se demasiado referente a ese tema.
Lo que si puedo darte es como abrir un nuevo mensaje con los datos ya anotados en el cliente de e-mail del PC usado. Con lo cual solo queda confirmar el envío desdel cliente. Quizá no sea lo que buscabas, pero, por si acaso puede ser de ayuda, te lo explico aquí:
'------------
'CÓDIGO
'------------
'Lenguaje: Visual Basic
'Tipo: función
'Nombre: ShowNewEmail
'Fecha de creación: 13/09/2005 - 22:40
'Creador: Zoto, para lawebdelprogramador.com|VisualBasic
'Descripción: Abre una nueva ventana de mensaje e-mail en el cliente de correo electrónico
'predeterminado, con los datos dados.
'Parámetros:
'MailTo->String que contiene la dirección e-mail principal, el principal receptor del e-mail.
'CC->String que contiene las direcciones, separadas por ;, a las cuales iran copias del mismo e-mail
'BCC->String que contiene las direcciones invisibles a las que ira el e-mail (separadas por ;)
'Subject->String que contiene el asunto del e-mail
'Body->String que contiene el cuerpo del e-mail (el mensaje en sí)
'Attachment->String que contiene el nombre del archivo adjunto (nombre completo, e.g. C:\Archivos adjuntos\Correo\gráficos.pdf)
'Valores devueltos:
'Si la función se ejecuta satisfactoriamente, devuelve valor nulo (0)
'Si la función tiene un error, devuelve el número del error ocurrido.
'Advertencias:
'La función precisa de la API ShellExecute para funcionar y de la constante,
'relativa a la misma llamada SW_SHOWNORMAL (valor 1), las cuales declaro aquí:
'EN ALGUNOS CASOS, DAR EL PARÁMETRO ATTACHMENT PARA ADJUNTAR UN ARCHIVO
'PUEDE DAR ERROR. RECOMIENDO NO UTILIZAR LA OPCIÓN DE ADJUNTAR ARCHIVOS,
'PUESTO QUE ESTE ES UN MÉTODO MUY SIMPLE PARA ENVIAR E-MAILS
'Y, POR LO TANTO, ES BASTANTE LIMITADO.
'Declaración de la API ShellExecute:
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory _
As String, ByVal nShowCmd As Long) As Long
'Declaración de la constante SW_SHOWNORMAL.
'Sirve para mostrar la ventana mensaje del cliente en estado
'normal
Private Const SW_SHOWNORMAL = 1
'Ejemplo de uso:
'Dim nErr As Integer
'nErr = ShowNewEmail("
[email protected]", "
[email protected];
[email protected];
[email protected]", "
[email protected];
[email protected];
[email protected]", "Esto es el asunto del mensaje", "Hola, Sr. charlie" & vbCrLf & "Esto es el cuerpo del mensaje.")
'If nErr = 0 Then
'MsgBox "Comando enviado satisfactoriamente", vbInformation + vbOKOnly, "Comando enviado"
'Else
'MsgBox "Error al enviar comando." & vbCrLf & "Número de error: " & nErr,vbCritical + vbOkOnly,"Error nº: " & nErr
'End If
'Nota: no he dado el parámetro Attachment porque da error en algunos casos.
'Es muy recomendable no ponerlo.
'Código de la función:
Private Function ShowNewEmail(Optional ByVal MailTo As String, Optional ByVal CC As String, Optional ByVal BCC As String, Optional ByVal Subject As String, Optional ByVal Body As String, Optional ByVal Attachment As String) As Integer
On Error GoTo ERROR_HANDLE
Dim sText As String 'Contiene la dirección e-mail principal
Dim sAddedText As String 'Contiene las otras partes del e-mail (CC, BCC, asunto, cuerpo y archivo adjunto)
If Len(MailTo) Then
sText = MailTo 'Dirección principal
End If
If Len(CC) Then
sAddedText = sAddedText & "&CC=" & CC 'Copias
End If
If Len(BCC) Then
sAddedText = sAddedText & "&BCC=" & BCC 'Copias invisibles
End If
If Len(Subject) Then
sAddedText = sAddedText & "&Subject=" & Subject 'Asunto del mensaje
End If
If Len(Body) Then
sAddedText = sAddedText & "&Body=" & Body 'Cuerpo del mensaje
End If
If Len(Attachment) Then
sAddedText = sAddedText & "&Attach=" & Chr(34) & Attachment & Chr(34) 'Archivo adjunto (entre comillas dobles, Chr(34))
End If
sText = "mailto:" & sText 'Se añade mailto: delante de sText
If Len(sAddedText) <> 0 Then
Mid$(sAddedText, 1, 1) = "?" 'Si hay elementos añadidos, se reemplaza el primer signo ampersand(&) por un signo de interrogación (?)
End If
sText = sText & sAddedText 'Se compacta todo el mensaje
If Len(sText) Then
Call ShellExecute(Me.hWnd, "open", sText, vbNullString, vbNullString, SW_SHOWNORMAL) 'Se llama a ShellExecute para que
'abra un nuevo mensaje con el cliente predeterminado con los datos dados.
End If
Exit Function
ERROR_HANDLE: ShowNewEmail = Err.Number 'Se devuelve el error dado
End Function
'------------
'CÓDIGO
'------------
______________________________
Espero que esta función te ayude a resolver tu problema y, aunque no sea lo que buscabas, que te sirva como alternativa en otros casos.
Disculpas y hasta otra,
Zoto