C/Visual C - Mandar mail con Visual C++

 
Vista:

Mandar mail con Visual C++

Publicado por Daniel (1 intervención) el 11/11/2002 23:37:14
Hola,
Necesitaria realizar una aplicación que una de sus funcionalidades es enviar correo automático, para esto sabeis como se puede hacer? hay alguna MFC que se encargue?
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Envío de correos electrónicos automáticos usando MAPI y Chilkat

Publicado por Alejandro (913 intervenciones) el 01/04/2025 18:53:37
¡Hola, Daniel! Para enviar correos electrónicos automáticamente desde una aplicación en C++ utilizando MFC (Microsoft Foundation Classes), puedes utilizar varias bibliotecas o enfoques. A continuación, te muestro un método común utilizando MAPI (Messaging Application Programming Interface) y otro utilizando la biblioteca de SMTP de Chilkat.

Opción 1: Usar MAPI



MAPI es una API que permite a las aplicaciones enviar correos electrónicos a través de clientes de correo instalados en el sistema. Aquí tienes un ejemplo básico de cómo enviar un correo electrónico utilizando MAPI en una aplicación MFC:

1. Incluir las bibliotecas necesarias:
Asegúrate de incluir las siguientes bibliotecas en tu proyecto:
1
2
#include <afxwin.h>
#include <mapi.h>

2. Código para enviar un correo electrónico:
Aquí tienes un ejemplo de cómo enviar un correo electrónico utilizando MAPI:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <afxwin.h>
#include <mapi.h>
 
void SendEmail()
{
    MapiMessage message;
    MapiRecipDesc recipient;
    ZeroMemory(&message, sizeof(message));
    ZeroMemory(&recipient, sizeof(recipient));
 
    // Configura el destinatario
    recipient.ulRecipClass = MAPI_TO;
    recipient.lpszName = "destinatario@example.com"; // Cambia esto por el correo del destinatario
    message.nRecipCount = 1;
    message.lpRecips =&recipient;
 
    // Configura el contenido del mensaje
    message.lpszSubject = "Asunto del correo";
    message.lpszNoteText = "Este es el cuerpo del correo.";
 
    // Envía el correo
    if (MAPISendMail(NULL, NULL, &message, MAPI_LOGON_UI | MAPI_DIALOG, 0) != SUCCESS_SUCCESS) {
        AfxMessageBox("Error al enviar el correo.");
    }
}

Opción 2: Usar la biblioteca Chilkat SMTP



Si prefieres un enfoque más directo y no depender de un cliente de correo instalado, puedes usar la biblioteca Chilkat para enviar correos electrónicos a través de SMTP. Aquí te muestro cómo hacerlo:

1. Descargar e instalar Chilkat:
- Descarga la biblioteca Chilkat desde su sitio web (https://www.chilkatsoft.com/downloads.asp) y sigue las instrucciones para agregarla a tu proyecto.

2. Incluir las bibliotecas necesarias:
Asegúrate de incluir la biblioteca Chilkat en tu proyecto:
1
2
#include "CkEmail.h"
#include "CkSmtp.h"

3. Código para enviar un correo electrónico:
Aquí tienes un ejemplo de cómo enviar un correo electrónico utilizando Chilkat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "CkEmail.h"
#include "CkSmtp.h"
 
void SendEmail()
{
    CkEmail email;
    CkSmtp smtp;
 
    // Configura el correo
    email.put_Subject("Asunto del correo");
    email.put_Body("Este es el cuerpo del correo.");
    email.put_From("tu_correo@example.com"); // Cambia esto por tu correo
    email.AddTo("destinatario", "destinatario@example.com"); // Cambia esto por el correo del destinatario
 
    // Configura el servidor SMTP
    smtp.put_Hostname("smtp.example.com"); // Cambia esto por tu servidor SMTP
    smtp.put_Port(587); // Cambia esto por el puerto SMTP
    smtp.put_Username("tu_usuario"); // Cambia esto por tu usuario
    smtp.put_Password("tu_contraseña"); // Cambia esto por tu contraseña
    smtp.put_StartTLS(true); // Si tu servidor SMTP requiere TLS
 
    // Envía el correo
    if (smtp.SendEmail(email) != true) {
        AfxMessageBox(smtp.lastErrorText());
    } else {
        AfxMessageBox("Correo enviado con éxito.");
    }
}

Consideraciones:


- Configuración del servidor SMTP: Asegúrate de que los detalles del servidor SMTP (hostname, puerto, usuario y contraseña) sean correctos.
- Permisos de seguridad: Si utilizas un servidor SMTP, asegúrate de que tu aplicación tenga los permisos necesarios para enviar correos.
- MAPI vs. SMTP: MAPI depende de un cliente de correo instalado, mientras que SMTP permite enviar correos directamente desde tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar