• Jueves 2 de Mayo de 2024, 16:58

Autor Tema:  Como Mandar Un E-mail  (Leído 1527 veces)

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Como Mandar Un E-mail
« en: Martes 2 de Mayo de 2006, 21:11 »
0
Hola, no se como puedo mandar un email a traves de una aplicacion. Probe el ejemplo que aparece en la ayuda de C++ Builder 6 pero ni asi consegui hacerlo. Si alguien ha conseguido mandar alguno, le agradeceria que me ayudara.

jrsmith

  • Miembro MUY activo
  • ***
  • Mensajes: 127
    • Ver Perfil
Re: Como Mandar Un E-mail
« Respuesta #1 en: Miércoles 10 de Mayo de 2006, 18:43 »
0
necesitas los servidores de smtp y pop3 yo utilice pues eso ya bastante tiempo los de yahoo.com.mx
Most people are so ungrateful to be alive, but not you, not any more...


     
PUMA DE CORAZON Y HASTA LA MUERTE

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Como Mandar Un E-mail
« Respuesta #2 en: Jueves 11 de Mayo de 2006, 17:20 »
0
Hola, acá te dejo un código que encontré hace algun tiempo, pertenece a _Leo del ClubBuilder y esta bastante bueno...

Saludos!

Citar
//---------------------------------------------------------------------------
// _Leo Software '2003                                 
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include <memory>
#include "Unit1.h"


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}


//---------------------------------------------------------------------------
void __fastcall TForm1::EnviarComando(String cmd, int resp, bool cr)
{
    memoConversacion->Lines->Add(">> " + cmd);

    if (cr)
        Powersock1->Writeln(cmd);
    else
        Powersock1->Write(cmd);

    String respuesta;
    do
    {
        respuesta = Powersock1->ReadLn();
        memoConversacion->Lines->Add("<< " + respuesta);

        if (respuesta.Pos(resp) != 1)
            throw Exception("Error :: " + cmd);
    } while (respuesta[4] == '-');
}


//---------------------------------------------------------------------------
String __fastcall TForm1::CodificarBase64(String str)
{
    std::auto_ptr<TStringStream> is(new TStringStream(str));
    std::auto_ptr<TStringStream> os(new TStringStream(""));

    NMUUProcessor1->InputStream  = is.get();
    NMUUProcessor1->OutputStream = os.get();
    NMUUProcessor1->Method = uuMime;
    NMUUProcessor1->Encode();

    return os->DataString;
}


//---------------------------------------------------------------------------
void __fastcall TForm1::EnviarCorreo(String smtp, String usuario,
    String clave, String de, String para, String asunto, String mensaje)
{
    Powersock1->Host = smtp;
    Powersock1->Port = 25;

    if (Powersock1->Connected)
        Powersock1->Disconnect();

    Powersock1->Connect();
    if (!Powersock1->Connected)
        throw Exception("No se pudo conectar");

    String respuesta = Powersock1->ReadLn();
    memoConversacion->Lines->Add(respuesta);
    if (respuesta.Pos("220") != 1)
        throw Exception("Error al conectar");

    EnviarComando("ehlo " + usuario);
    EnviarComando("rset");

    EnviarComando("auth LOGIN", 334);
    EnviarComando(CodificarBase64(usuario), 334, false);
    EnviarComando(CodificarBase64(clave), 235, false);

    EnviarComando("mail from:" + de);
    EnviarComando("rcpt to:" + para);

    EnviarComando("data", 354);
    String cabecera = "Subject: " + asunto + "\r\n"
                      "To: "      + para   + "\r\n"
                      "From: "    + de     + "\r\n";
    EnviarComando(cabecera + "\r\n" + mensaje + "\r\n.");

    EnviarComando("Quit", 221);
    Powersock1->Disconnect();
}


//---------------------------------------------------------------------------

void __fastcall TForm1::btnEnviarClick(TObject *Sender)
{
    try
    {
        btnEnviar->Enabled = false;
        EnviarCorreo(edtServidor->Text, edtUsuario->Text, edtClave->Text,
            edtDeNombre->Text + "<" + edtDeCorreo->Text + ">",
            edtParaNombre->Text + "<" + edtParaCorreo->Text + ">",
            edtAsunto->Text, memoMensaje->Text);
    }
    __finally
    {
        btnEnviar->Enabled = true;
    }
}
//---------------------------------------------------------------------------
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Re: Como Mandar Un E-mail
« Respuesta #3 en: Viernes 19 de Mayo de 2006, 16:39 »
0
Muchas gracias por las respuestas  :P  Voy a trabajar en ello  :comp: