PDA

Ver la Versión Completa : Como mandar un correo con Delphi 2010


José Luis Garcí
09-02-2011, 21:06:40
Hola compañeros. he estado buscando en el Club y en la red y no he conseguido nada que me funcione, si podéis ayudarme en como mandar un correo electrónico con delphi 2010, sin tener que acudir a gestores de correo, y aprovechando el mensaje de como mandar un archivo adjunto.

Como siempre muchas Gracias

roman
09-02-2011, 21:14:04
Quizá es un poco ingenua mi pregunta, pero, ¿has probado con Indy? ¿No hay versión para Delphi 2010?

// Saludos

José Luis Garcí
09-02-2011, 22:03:04
Difiere de las demos que tengo, viene incluido en delphi 2010, pero no se como hacerlo funcionar, pruebo en el Delphi 2009 de mi amigo Jorge y funciona pero en el mismo código en delphi 2010 no va.

elguille
11-02-2011, 13:03:53
Esto seguro que funciona

procedure email2(host:string;nombre:string;password:string;port:integer;desde:string;hasta:string;asunto:strin g;cuerpo:string;adjunto:string);
var
IDSMTP1: TIDSMTP; // Componente de envio de correo
mensaje: TIdMessage;
begin
screen.cursor:=crhourglass;
IDSMTP1:=TIDSMTP.Create(nil);
IdSMTP1.UserNAME := nombre;
IdSMTP1.Password := password;
IdSMTP1.Host := host;
IdSMTP1.Port := port;
MENSAJE:=TIDMESSAGE.CREATE(nil);
with Mensaje do
begin
Body.Add(CUERPO);
From.Text := desde;
Recipients.EMailAddresses := hasta;
Subject := asunto;
Priority := TIdMessagePriority(mpHighest);//prioridad del mensaje
CCList.EMailAddresses := '';
BccList.EMailAddresses := '';
if adjunto<>'' THEN
TIdAttachmentfile.Create(Mensaje.MessageParts,adjunto);
end;
with idsmtp1 do
begin
try
Connect;
try
// Envio el mensaje.
Send(Mensaje);
finally
Disconnect;
end;
// MessageDlg('Enviado Correctamente', mtInformation, [mbOK], 0);
except
// Capturo algunas excepciones que pueden ocurrir
{ ON E: EProtocolReplyError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o la password.', mtError, [mbOK], 0);
end;}
on E: EFOpenError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.', mtError, [mbOK], 0);
end;
{ on E: EIdSocketError do begin
MessageDlg('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.', mtError, [mbOK], 0);
end}
else begin
MessageDlg('Fallo en el envio de email', mtError, [mbOK], 0);
end;
end;
end;
IDSMTP1.free;
mensaje.free;
screen.cursor:=crdefault;
ENd;

Quim Herrera
17-02-2011, 20:01:08
Hola,

Estoy buscando como mandar emails en Delphi 2009 con acentos en el asunto y en el body.

He probado este código con
asunto = 'test ÇçÑñÁàáÉèÈéÍíÒòÓóÚúÏÜ' y cuerpo = 'test ÇçÑñÁàáÉèÈéÍíÒòÓóÚúÏÜ' y tampoco funciona.
Lo envia bien, pero los textos llegan convertidos como: testCcNnAaaEeEeIiOoOoUuIU

¿A vosotros os pasa lo mismo o es mi Delphi 2009?

Gracias por adelantado,

Quim Herrera