Cómo enviar correos electrónicos usando VB, ¡dame algún consejo!
Utilice VB para enviar y recibir correos electrónicos
1. Preparación
Escribir un programa de correo electrónico en VB requiere llamar a MAPI (Interfaz de programación de aplicaciones de mensajería, programación de aplicaciones de mensajería) de Microsoft. Interface), que requiere la ayuda de dos controles centrales para implementar las funciones de envío y recepción de correo electrónico: control de sesión MAPI y control de mensajes MAPI. El control de sesión MAPI se usa para establecer y controlar una sesión de Microsoft Mail y el control de mensajes MAPI se usa para crear, enviar y recibir mensajes de correo. Además, el sistema Windows debe tener un sistema de correo compatible con MAPI, como Exchange, Outlook y otro software, y se deben realizar algunas configuraciones para garantizar que el sistema de correo se pueda utilizar normalmente.
¿Dónde puedo encontrar el control MAPI?
Hay uno ya preparado en VB, pero el programa no se coloca directamente en la caja de herramientas. Necesitamos agregar el control MAPI a la caja de herramientas de VB nosotros mismos. Primero, haga clic con el botón derecho del mouse directamente en la barra de control en el lado izquierdo de VB y seleccione el comando "Componentes" en el menú emergente. En este momento, puede activar la ventana de configuración del componente y seleccionar "Microsoft MAPI". Controles" en el cuadro de lista "Controles" (como se muestra en la Figura 1), y luego presione el botón "Aceptar", encontrará que habrá dos íconos más en la caja de herramientas, que son los íconos del control de sesión MAPI. y control de mensajes MAPI (como se muestra en la Figura 2).
2. Programa de envío de correo electrónico
Después de agregar los controles que necesitamos, comencemos a personalizar el programa de envío de correo electrónico. El proceso básico de este programa de envío de correo electrónico es redactar un correo electrónico basado en la información ingresada por el usuario y luego usar el método Enviar del control de mensajes MAPI para enviar el correo electrónico. El método específico es el siguiente:
1. Cree un nuevo proyecto VB y establezca la propiedad Título del formulario predeterminado Form1 en "Enviar correo".
2. Agregue un control de sesión MAPI MAPISession1 y un control de mensajes MAPI MAPIMessages1 a Form1.
3. Agregue tres controles TextBox a Form1, establezca sus propiedades de nombre en "txtSendTo", "txtSubject" y "txtMessage" respectivamente, y establezca la propiedad Multiline de txtMessage en "True" ". Estos tres controles TextBox se utilizarán para completar la dirección del destinatario, el asunto del correo electrónico y el cuerpo del correo electrónico, respectivamente.
4. Agregue tres controles Label a Form1, establezca sus propiedades Título en "Destinatario", "Asunto" y "Contenido" respectivamente y colóquelos en las ubicaciones apropiadas. Etiquete el control TextBox correspondiente.
5. Agregue un control Botón de comando a Form1 y establezca su propiedad Título y propiedad Nombre en "Enviar" y "Enviar" respectivamente.
Después de agregar todos los controles, debería verse como en la Figura 3.
El siguiente es el contenido de la parte del código:
1. Agregue el siguiente código al evento Form_Load de Form1:
Private Sub Form_Load()
MAPISession1.SignOn / Realizar la operación de inicio de sesión por correo electrónico después de ejecutar el programa
End Sub
2. Agregue el siguiente código al evento Form_Unload de Form1:
Private Sub Form_Unload( Cancelar como entero)
MAPISession1.SignOff /Salir del buzón al salir del programa
End Sub
3. siguiente código para el evento Click de cmdSend:
Private Sub cmdSend_Click()
With MAPIMessages1
.MsgIndex = -1
. RecipDisplayName = txtSendTo.Text /Dirección del destinatario
.MsgSubject = txtSubject.Text /Asunto del correo
.MsgNoteText = txtMessage.Text /Texto del correo
.SessionID = MAPISession1.SessionID /Programa de envío y herramienta de correo El número de tareas creadas entre
.Enviar
Finalizar con
MsgBox "¡Correo electrónico enviado completado!", , " Enviar correo electrónico" /cuadro Enviar mensaje correctamente
End Sub
La parte de envío del correo electrónico se ha completado. Después de ejecutar el programa, simplemente complete el destinatario, el asunto y el contenido del correo electrónico. y presione el botón de comando "Enviar", el correo electrónico se envió exitosamente al destino (como se muestra en la Figura 4).
3. Programa de recepción de correo
El programa de recepción de correo es más complicado que el programa de envío de correo. Este programa primero necesita utilizar el método Fetch del control de mensajes MAPI para leer el correo. Este proceso hará que el usuario Todos los correos electrónicos no leídos en la bandeja de entrada se carguen en el control de mensajes MAPI. A continuación, verifique la propiedad MsgCount del control de mensajes MAPI para determinar la cantidad total de correos electrónicos leídos a través del método Fetch y luego especifique qué correo electrónico debe procesarse configurando la propiedad MsgIndex del control de mensajes MAPI. Cabe señalar que el recuento de los valores del atributo MsgIndex comienza desde 0, es decir, el número de índice del primer correo electrónico es 0, el número de índice del segundo correo electrónico es 1, y así sucesivamente. Los pasos específicos son los siguientes:
1. Cree un nuevo proyecto VB y establezca la propiedad Título del formulario predeterminado Form1 en "Recibir correo".
2. Agregue un control de sesión MAPI MAPISession1 y un control de mensajes MAPI MAPIMessages1 a Form1.
3. Agregue tres controles Label y un control TextBox a Form1, establezca las propiedades de nombre de los tres controles de etiqueta en "lblMsgDateReceived", "lblMsgOrigDisplayName" y "lblMsgSubject" respectivamente, y establezca el nombre del TextBox. control Establezca la propiedad 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.
4. Establezca la propiedad Bloqueada y la propiedad Multilínea del control txtMsgNoteText en "True" y establezca la propiedad ScrollBars en "2-Vertical".
5. Agregue cuatro controles Etiqueta más a Form1 para etiquetar los cuatro controles anteriores y establezca sus propiedades Título en "Fecha", "Remitente", "Asunto" y "Contenido" respectivamente.
6. Agregue un control Etiqueta a Form1, establezca su propiedad de nombre en "lblMsgCount" y establezca su propiedad Título en "0º correo electrónico, total 0 correos electrónicos". Este control se utiliza para mostrar el número total de correos electrónicos recibidos y qué correo electrónico se está procesando actualmente.
7. Agregue tres controles de botón de comando a Form1, establezca sus propiedades de nombre en "cmdPrevious", "cmdNext" y "cmdClose" respectivamente, y establezca sus propiedades de título en "Anterior", "Siguiente" y " Cerca".
Después de agregar todos los controles, debería verse como en la Figura 5.
Xiao Mushroom: Entonces, ¿qué pasa con el código del programa específico?
Campanita: ¿Estás ansiosa otra vez? ¿Seguiría mintiéndote? El siguiente es el código específico del programa:
1. Escriba una subrutina FetchNewMail:
Public Sub FetchNewMail()
MAPIMessages1.FetchUnreadOnly = True
MAPIMessages1.El comando Fetch /Fetch captura el mensaje en el búfer de la memoria del sistema
End Sub
2. Escribe una subrutina DisplayMessage:
Público. Sub DisplayMessage()
lblMsgCount.Caption = "th" & Ltrim(Str(MAPIMessages1.MsgIndex 1)) & "mensajes, total" & Ltrim(Str(MAPIMessages1.MsgCount) ) amp; /Conozca el número de letras de MsgCount y luego use MsgIndex para establecer el contenido y el título de la carta que desea ver
lblMsgDateReceived.Caption = MAPIMessages1.MsgDateReceived /La fecha en que se recibió la carta p >
txtMsgNoteText.Text = MAPIMessages1.MsgNoteText /El contenido de la carta recibida
lblMsgOrigDisplayName.Caption = MAPIMessages1.MsgOrigDisplayName /El nombre del correo electrónico enviado
lblMsgSubject.Caption = MAPIMessages1.MsgSubject / Asunto del correo electrónico
End Sub
3 Agregue el siguiente código al evento Form_Load de Form1:
Private Sub Form_Load()
MAPISession1. SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID
FetchNewMail /Llamar a la subrutina Fetch
DisplayMessage /Llamar a la subrutina DisPlayMessage p>
End Sub
4. Agregue el siguiente código al evento Click de cmdPrevious:
Private Sub cmdPrevious()
If MAPIMessages1.MsgIndex gt; 0 Then
MAPIMessages1.MsgIndex = MAPIMessages1.MsgIndex - 1 /Cuando reciba más de 1 carta, use el botón "Anterior" para ver la carta anterior
DisplayMessage
Else p>
Beep
End If
End Sub
5. Sustituya lo siguiente
Código para unirse al evento Click de cmdNext:
Private Sub cmdNext_Click()
If MAPIMessages1.MsgIndex lt MAPIMessages1.MsgCount - 1 Then
MAPIMessages1.MsgIndex; = MAPIMessages1 .MsgIndex 1 /Cuando reciba más de 1 letra, use el botón "Siguiente" para ver las siguientes letras
DisplayMessage
De lo contrario
Bip p> p>
End If
End Sub
15. Agregue el siguiente código al evento Click de cmdClose:
Private Sub cmdClose_Click()
Descargarme
Fin Sub
Como se muestra en la Figura 6 después de ejecutar el programa. Durante el proceso de carga del formulario, el código en el evento de carga del formulario leerá los correos electrónicos nuevos. Si hay un correo electrónico nuevo, se mostrará el primer correo electrónico nuevo. Si hay varios correos electrónicos nuevos, puede usar "anterior" y "Siguiente". Botón de comando para navegar hacia adelante y hacia atrás.