intento enviar un correo electrónico, pero tengo un problema, sin embargo, me encontré con este código en la web:SendEmail con componentes Indy
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdMessage, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, IdBaseComponent, IdComponent, IdIOHandler,
IdExplicitTLSClientServerBase, IdSMTPBase
procedure SendSimpleMail;
var
Msg: TIdMessage;
DestAddr: TIdEmailAddressItem;
begin
Msg := TIdMessage.Create(Self); //error here
Msg.From.Text := 'name';
Msg.From.Address := '[email protected]';
Msg.Subject := 'Test';
DestAddr := Msg.Recipients.Add;
DestAddr.Text := 'name';
DestAddr.Address := '[email protected]';
Msg.Body.Add('simple test mail.');
tIdSMTP.Host := 'smtp.gmail.com';
tIdSMTP.Port := 25;
tIdSMTP.AuthenticationType := atLogin; //error here (2 error)
tIdSMTP.Username := '[email protected]';
tIdSMTP.Password := 'password';
tIdSMTP.Connect;
tIdSMTP.Authenticate;
tIdSMTP.Send(Msg);
tIdSMTP.Disconnect;
end;
Pero sin embargo, he observado muchos errores y me falta un componente de Indy. errores del compilador:
[DCC Error] Unit1.pas(36): E2003 Undeclared identifier: 'Self'
[DCC Error] Unit1.pas(46): E2233 Property 'Host' inaccessible here
[DCC Error] Unit1.pas(47): E2233 Property 'Port' inaccessible here
[DCC Error] Unit1.pas(48): E2003 Undeclared identifier: 'AuthenticationType'
[DCC Error] Unit1.pas(48): E2003 Undeclared identifier: 'atLogin'
[DCC Error] Unit1.pas(49): E2233 Property 'Username' inaccessible here
[DCC Error] Unit1.pas(50): E2233 Property 'Password' inaccessible here
[DCC Error] Unit1.pas(51): E2076 This form of method call only allowed for class methods
[DCC Error] Unit1.pas(52): E2076 This form of method call only allowed for class methods
[DCC Error] Unit1.pas(53): E2076 This form of method call only allowed for class methods
[DCC Error] Unit1.pas(54): E2076 This form of method call only allowed for class methods
[DCC Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas'
Gracias por la ayuda de antemano
Una cosa es la adición de 'IdEMailAddress' a su cláusula de usos para que el compilador conoce el' TIdEmailAddressItem' , pero otra es que el ejemplo es básicamente incorrecto y es para Indy 9 (debido al tipo de autenticación 'atLogin'), ¿qué versión de Indy estás usando? Puede verificarlo si mantiene presionada la tecla 'CTRL' y hace clic en, p. 'IdSMTP' de su cláusula uses y luego verifique dónde está almacenado el' IdSMTP.pas'. Si está en la carpeta 'Indy9' o' Indy10'. – TLama
ok gracias, ahora los errores han disminuido, pero ahora son 3 errores (he editado la primera publicación), tengo Indy9 e Indy10, pero cuando hago clic en idSMTP me sale un error: no se puede encontrar el archivo idSMTP.pas –