Buscando el código fuente de VB para enviar correos electrónicos ~~
Al programar un programa VB con la función de enviar y recibir correos electrónicos, debe usar Visual Basic 4.0 o superior, porque solo Visual Basic 4.0 o superior tiene la funcionalidad de los dos controles centrales para enviar y recepción de correos electrónicos: control de sesión MAPI y control de mensajes MAPI. El control de sesión MAPI se usa para establecer y controlar sesiones de Microsoft Mail y el control de mensajes MAPI se usa para establecer y controlar sesiones de Microsoft Mail. El control de sesión MAPI se usa para establecer y controlar sesiones de Microsoft Mail y el control de mensajes MAPI se usa para crear, enviar y recibir mensajes de correo electrónico. Además, el programa debe ejecutarse en un entorno que utilice un sistema de mensajería compatible con MAPI (como Microsoft Exchange, Microsoft Mail, Outlook, etc.).
Antes de comenzar a programar, primero debe agregar el control MAPI a la caja de herramientas de VB. La operación específica es: seleccione el comando Control personalizado en el elemento del menú Herramientas en la barra de menú de VB, abra el cuadro de diálogo "Control personalizado" y seleccione un elemento en la tabla "Control MAPI de Microsoft" en la lista "Controles disponibles" cuadro, luego presione el botón de comando "Aceptar" y presione el botón de comando "Aceptar" para salir del cuadro de diálogo. Posteriormente, se agregarán dos nuevos íconos a la caja de herramientas, para el control de sesión MAPI y el control de mensajes MAPI.
A continuación, tomaré dos programas VB simples como ejemplos para presentar los métodos de programación para enviar y recibir correos electrónicos respectivamente.
Programa de envío de correo
El proceso básico del programa de envío de correo es redactar un correo electrónico en función de la información ingresada por el usuario y luego utilizar el método de envío del control de mensajes MAPI. para enviar el correo electrónico. Los pasos de programación son los siguientes:
1. Cree un nuevo proyecto VB.
2. Establezca la propiedad de título del formulario predeterminado Form1 en "Enviar correo".
3. Agregue controles MAPI en la caja de herramientas de VB.
4. Agregue el control de sesión MAPI MAPISession1 y el control de mensajes MAPI MAPIMessages1 en Form1.
5. Agregue tres controles de cuadro de texto en el Formulario 1, establezca sus propiedades de nombre en txtSendTo, txtSubject, txtMessage y establezca la propiedad txtMessage en "Enviar mensaje", txtMessage y establezca el atributo de fila múltiple. establecido en Verdadero. Estos tres controles de cuadro de texto se utilizarán para completar los destinatarios, el asunto y el contenido del correo electrónico, respectivamente.
6. Agregue tres controles de etiqueta en Form1, establezca sus propiedades de título en "Para" (destinatario), "Asunto" (tema) y "Contenido" (contenido) y establezca su Ubicación en el lugar correcto. posición del control del cuadro de texto correspondiente.
7. Agregue un control de botón de comando en Form1 y establezca su propiedad Título y propiedad Nombre en "Enviar" y "cmdSend" respectivamente.
8. Agregue el siguiente código en el evento Form_Load de Form1:
Private Sub Form_Load()
MAPISession1.SignOn
End Sub
9. Agregue el siguiente código en el evento Form_Unload de Form1:
10.Evento de descarga:
Private Sub Form_Unload(Cancel As Integer)
p>
MAPISession1.SignOff
End Sub
10.
.MsgSubject = txtSubject.Text
.MsgNoteText = txtMessage .Text
.SessionID = MAPISession1.SessionID
.Send
Fin con
MsgBox "¡Se ha enviado el correo electrónico!" , "Enviar correo "
.SessionID = MAPISession1.SessionID
.Enviar
Finalizar con
MsgBox " ¡Correo electrónico enviado!, " Enviar correo"
End Sub
Después de completar el destinatario, el asunto y el contenido del correo electrónico, presione el botón de comando "Enviar". Si no hay errores de ejecución, significa que el correo electrónico se ha enviado correctamente al destino. De lo contrario, verifique si la dirección del destinatario está completada correctamente y si el sistema de mensajería que se ejecuta en el sistema es normal.
Programa de recepción de correo
El. El programa de recepción de correo es un poco más complicado que el programa de envío de correo. Primero, debe leer el correo utilizando el método Fetch del control de mensajes MAPI, que cargará todos los mensajes no leídos en la bandeja de entrada del usuario en el control de mensajes MAPI. la propiedad MsgCount del control de mensajes MAPI para determinar la cantidad de mensajes leídos por el método Fetch. A continuación, puede especificar los mensajes que se procesarán configurando la propiedad MsgIndex del control de mensajes MAPI. Tenga en cuenta que el recuento del valor de la propiedad MsgIndex comienza desde 0, es decir, el número de índice del primer mensaje es 0. El número de índice del segundo correo electrónico es 1, y así sucesivamente. Los pasos de programación son los siguientes:
1. Cree un nuevo proyecto de VB
2. Cambie el atributo de título del formulario predeterminado establecido en "Recibir correo".
3. Agregue controles MAPI en la caja de herramientas de VB.
4. Agregue el control de sesión MAPI MAPISession1 y el control de mensajes MAPI MAPIMessages1 en Form1.
5. Agregue tres controles de etiqueta y un control de cuadro de texto en Form1, y establezca las propiedades de Nombre de los tres controles de etiqueta en lblMsgDateReceived, lblMsgOrigDisplayName y lblMsgSubject respectivamente, y establezca la propiedad Nombre del control de cuadro de texto en txtMsgNoteText y borre el contenido de la propiedad Caption del control de etiqueta y la propiedad Text del control de cuadro de texto. Estos cuatro controles se utilizarán para mostrar la fecha, el remitente, el asunto y el contenido del correo electrónico.
6. Establezca la propiedad Lock y la propiedad Multiline del control txtMsgNoteText en True, y establezca la propiedad ScrollBar en 2 - Vertical.
7. Agregue cuatro controles de etiqueta más a Form1 para marcar los cuatro controles anteriores y establezca su propiedad de título en "Fecha". Establezca sus propiedades de título en Fecha, De, Asunto y Contenido.
8. Agregue un control de etiqueta en Form1, establezca su propiedad Nombre en lblMsgCount y establezca su propiedad Título en "Correo electrónico 0 de 0 correos electrónicos". Este control mostrará el número total de mensajes recibidos y el número de mensajes que se están procesando actualmente.
9. Agregue tres controles de botón de comando en Form1, establezca sus propiedades de nombre en cmdPrevious, cmdNext, cmdClose y establezca sus propiedades de título en "Anterior", "Siguiente" y "Cerrar".
End Sub
11. Escribir subrutina DisplayMessage a nivel de formulario:
Public Sub DisplayMessage()
lblMsgCount.Caption = "Primero " & _
LTrim( Str(MAPIMessages1.Caption = MAPIMessages1.MsgDateReceived
txtMsgNoteText.Text = MAPIMessages1.MsgNoteText
lblMsgOrigDisplayName.Caption = MAPIMessages1.MsgOrigDisplayName
lblMsgSubject.Caption = MAPIMessages1.MsgSubject
End Sub
12 Agregue el siguiente código en el evento Form_Load de Form1:
Privado. Sub Form_Load()
MAPISession1.SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID
FetchNewMail <
DisplayMessage
End Sub
13. Agregue el siguiente código en el evento Click de cmdPrevious:
Private Sub cmdPrevious_Click()
If MAPIMessages1.MsgIndex > 0 Then.
p>MAPIMessages1.
End Sub
14. Agregue el siguiente código en el evento Click de cmdNext:
Private Sub cmdNext_Click. ()
Si MAPIMessages1.MsgIndex < MAPIMessages1.MsgCount - 1 Entonces
MAPIMessages1.MsgIndex = MAPIMessages1.MsgIndex + 1
DisplayMessage
Else
Beep
End If
End Sub
15 Agregue el siguiente código en el evento Click de cmdClose:
Private Sub cmdClose_Click()
Descargarme
End Sub
Durante el proceso de carga del formulario, se leerá el código en el evento de carga del formulario el mensaje nuevo y, si está disponible, Cuando hay mensajes nuevos, se muestra el primer mensaje nuevo. Si hay varios mensajes nuevos, puede usar los botones de comando Anterior y Siguiente para desplazarse hacia adelante y hacia atrás.
Recibir correo
Este ejemplo leerá todos los mensajes no leídos en la bandeja de entrada del usuario.
Si desea leer todos los mensajes en su bandeja de entrada, simplemente establezca la propiedad FetchUnreadOnly del control de correo MAPI en False antes de ejecutar el método Fetch y luego podrá determinar si el mensaje entrante se ha leído utilizando la propiedad MsgRead. Si el cuerpo del mensaje o el archivo adjunto se ha visto antes, el mensaje se marcará automáticamente como leído, pero si el mensaje no está marcado como leído, solo se podrá ver el asunto del mensaje.
Adjuntos de correo
De manera similar a cómo maneja el correo, MAPI también proporciona contadores e índices para los archivos adjuntos de correo. Al procesar un mensaje entrante, puede determinar cuántos archivos adjuntos tiene el mensaje marcando la propiedad AttachmentCount y luego puede procesar cada archivo adjunto por turno configurando la propiedad AttachmentIndex.
El rango de valores legales de AttachmentIndex es de 0 a AttachmentIndex-1. Después de configurar el valor de la propiedad AttachmentIndex, puede leer las siguientes propiedades del archivo adjunto:
AttachmentName: cuando el archivo adjunto es un archivo, esta propiedad se utiliza para especificar el nombre del archivo. .Cuando el archivo adjunto es un objeto OLE, esta propiedad se utiliza para especificar el tipo de objeto.
Ruta del archivo adjunto: Este atributo se utiliza para especificar el nombre de la ruta completa del archivo que se adjuntará.
Posición del archivo adjunto: Este atributo se utiliza para especificar la posición del archivo adjunto dentro de la parte del contenido del mensaje. Cuando el remitente muestra el contenido del mensaje, utiliza la información proporcionada por esta propiedad para colocar la marca del archivo adjunto en la ubicación adecuada.
Tipo de archivo adjunto: Este atributo se utiliza para especificar el tipo de archivo adjunto. Su valor legal son tres valores enteros, los cuales están representados por las siguientes constantes en VB:
-mapData-The. el archivo adjunto es un archivo de datos
-mapEOLE-El archivo adjunto es un objeto OLE incrustado
-mapSOLE-El archivo adjunto es un objeto OLE estático
Cómo utilizar el atributos anteriores al enviar correos electrónicos Lo mismo que al recibir correo, excepto que la operación cambia de lectura a escritura. Cabe mencionar la propiedad AttachmentIndex, que se puede establecer en cualquier valor al enviar información. La propiedad AttachmentCount se establece automáticamente en el valor correcto y no es necesario establecerla.
Resumen
Al analizar los códigos de los dos programas anteriores, podemos resumir el proceso básico del programa VB con la función de enviar y recibir correos electrónicos de la siguiente manera:
1. Utilice el control de sesión MAPI para establecer una sesión de correo.
2. Utilice el control de mensajes MAPI para el procesamiento de correo electrónico.
3. Utilice nuevamente el control de sesión MAPI para liberar la sesión de correo electrónico.
Dado que los dos programas VB anteriores son solo ejemplos simples, se omiten algunos detalles que no están estrechamente relacionados con el tema de este artículo, como el manejo de errores. Al escribir un programa de utilidad, debería considerar agregar estos detalles para garantizar la confiabilidad del programa.