PDA

Ver la Versión Completa : Como enviar un e-mail desde Builder?


JuanErasmo
24-10-2005, 23:33:39
Buenas Noches amigos.
Estoy utilizando el NMSMTP1 y me dice que no se puede conectar...
Cual es la forma mas sencilla de enviar un mensaje a correo desde Builder?
Gracias amigos.

dec
25-10-2005, 00:02:06
Hola,

No entiendo cuál puede ser el problema. Revisando la ayuda del componente que mencionas puede verse un ejemplo la mar de completo. He probado a enviar un correo basándome en esa información y no he encontrado problemas. Si usas la versión 6 de C++ Builder (acaso en versiones anteriores también) podrías usar igualmente los componentes Indy (http://www.indyproject.org/). ¿Es posible que no estés utilizando un servidor SMTP válido? ¿Quizás es que tengas que indicar un nombre de usuario para poder utilizarlo? Insisto en el ejemplo que acompaña al componente mencionado: es de lo más completo.

JuanErasmo
25-10-2005, 00:10:35
Dec, lo que pasa es que me sale un error de

NMSMTP1->PostMessage->FromAddress ="localhost";
no se si ese parametro es como el outlook, si uno tiene una cuenta en yahoo, como se autentifica?
Gracias.

dec
25-10-2005, 00:22:13
Hola,

Lo que has de indicar en la propiedad "FromAddress" es una dirección de correo y no otra cosa, o sea, la dirección de correo del remitente del mismo. Es en la propiedad "Host" donde tienes que indicar el servidor SMTP desde el cual enviar el correo de marras. Ignoro si Yahoo (http://es.yahoo.com/) te proporciona un servidor SMTP que puedas usar ni cómo "autentificarse" en el mismo. Echa un vistazo en la ayuda de tu cuenta de correo en dicho proveedor de servicios a ver si te ofrece información al respecto.

jachguate
25-10-2005, 00:32:18
Dec, lo que pasa es que me sale un error de

NMSMTP1->PostMessage->FromAddress ="localhost";
no se si ese parametro es como el outlook, si uno tiene una cuenta en yahoo, como se autentifica?
Gracias.

¿Tenes acceso via smtp a yahoo? Si no lo tenes, pues primero arreglas las cuentas con ellos (pues el smtp con yahoo no es gratuito, o al menos no lo era la última vez que leí sobre eso) y luego en FromAddress pones 'tunombre@yahoo.com' o la dirección que corresponda ;)

Hasta luego.

;)

JuanErasmo
25-10-2005, 15:47:42
Les agradezco mucho por su ayuda.
Debo abrir una cuenta para tener servicio SMTP, y luego si puedo utilizar el componente.
Gracias!

JuanErasmo
25-10-2005, 16:06:07
Amigos otra vez soy yo!

Ya tengo una cuenta con un servidor SMTP pero me sale un error de "authentication failed", que método o propiedad me permite autenticarme ingresar el password o algo así?
hablando del componente NMSMTP del FastNet?
Gracias amigos.

dec
25-10-2005, 16:35:46
Hola,


autenticarme ingresar el password o algo así? (...) hablando del componente NMSMTP del FastNet?

¿Qué versión de Delphi estás utilizando? ¿Podrías instalar los componentes Indy (http://www.indyproject.org/)? ¿Puedes publicar el código que estás tratando de utilizar? ;)

JuanErasmo
25-10-2005, 17:22:17
Hola David, estoy utilizando C++ Builder 6, pero los componentes Indy ahí estan, lo que pasa es que no los se manejar.

El código que estoy utilizando es el siguiente:



nmsmtp1->Host="tone.udea.edu.co" ;
nmsmtp1->Port=25;
nmsmtp1->Connect();
nmsmtp1->PostMessage->ToAddress->Add("di4oscarbedoya@yahoo.com");
nmsmtp1->PostMessage->FromAddress="oscarbedoya@enfermeria.udea.edu.co";
msmtp1->PostMessage->Subject="HOLA A TODOS";
nmsmtp1->PostMessage->Body->Add("LO LOGRE!!!!");
nmsmtp1->SendMail();

dec
25-10-2005, 18:53:11
Hola,

Básicamente con ese código, pero utilizando otro servidor SMTP no he tenido problemas para enviar el correo. Tratando de usar el servidor SMTP que tú has indicado más arriba me han aparecido hasta dos errores, pero, el que se repite es:



---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class Exception with message 'Authentication failed'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Tal vez es que precisas precisamente eso, "autentificarte". No sabría hacerlo con los componente que tratas de usar. Con los componentes Indy (http://www.indyproject.org/), aunque no lo he podido probar, tal vez lo siguiente podría valerte o al menos darte alguna idea:



void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdMessage->Subject = "Asunto del correo";
IdMessage->Body->Text = "Cuerpo del correo";
IdMessage->From->Address = "correo@remitente.es";
IdMessage->Recipients->Add();
IdMessage->Recipients->Items[0]->Address = "correo@destino.es";
__try
{
IdSMTP->UserId = "usuario";
IdSMTP->Password = "contrasena";
IdSMTP->Host = "smtp.servidor.es";
IdSMTP->AuthenticationType = atLogin;
IdSMTP->SocksInfo->Authentication = saUsernamePassword;
IdSMTP->Connect();
IdSMTP->Authenticate();
IdSMTP->Send(IdMessage);
}
__finally
{
if(IdSMTP->Connected())
IdSMTP->Disconnect();
}
}

JuanErasmo
25-10-2005, 19:32:11
Hola Dec, sigo con el error de autenticacion, pero podrías decirme donde abrir una cuenta con servicio SMTP gratuito?

Gracias!

dec
25-10-2005, 20:00:55
Hola,



(...) podrías decirme donde abrir una cuenta con servicio SMTP gratuito?

Pues lo lamento, pero, no puedo hacerlo. Yo me valgo del servidor SMTP que proporciona la operadora de telefonía con quien tengo contratada la conexión a Internet. No preciso siquiera de "autenticación", puesto que, solamente puedo hacer uso de dicho servidor SMTP cuando mi ordenador está conectado a Internet a través de dicha operadora de telefonía. Tal vez tu teleoperadora pueda ofrecerte algo similar. Creo que es habitual hacer esto.

dec
25-10-2005, 20:40:27
Hola,

Respecto de mi anterior mensaje tal vez puedas preguntarte, vale, tú envías los correos mediante el servidor SMTP de la operadora de telefonía conque tienes conexión a internet contratada, pero, ¿y si quieres que algún programa que hallas escrito te envíe algún correo, por poner un caso, a modo de reporte de error? En ese caso, o bien tendrá el usuario que enviar el correo a través de su programa predeterminado para tal fin (yo me encargaría de presentarle el correo listo para enviar) o, bien solicitaría al usuario un servidor SMTP desde donde enviar el correo de marras: tal como hace cualquier cliente de correo, a lo menos los que he utilizado y todavía utilizo.

slim_shaddy
26-11-2008, 17:39:58
Hola a mi me da un problema a la hora de declarar los TIdMessage en concreto el error es undefined simbol o sea como si no lo reconociera, que componente indi debo agregar, hay que agregar alguna unit ?
gracias