Fórum Enviando Email com Delphi #486965

27/07/2014

0

Estou desenvolvendo uma aplicação onde a mesma interage com um Scrip PHP para envio de dados. Porém, não estou conseguindo ter sucesso com o mesmo. Após a compilação é a presentada uma tela de erro com a seguinte mensagem : Acess violation at adderess 0063d716 in module 'projectEmail.exe'. Read of address 00000008. Li sobre e descobri que isso é uma violação de endereço de memória, ou seja, algum trecho do código está tentando utilizar uma variável ou objeto que ainda não foi criado. Ficaria muito grato se alguém me ajudasse pois ainda não consegui sanar o problema. Abaixo deixo o código da aplicação, Desde já agradeço!


unit UnitEmail;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
IdHTTP: TIdHTTP;
implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
var
Lista: TStringList;
IdHTTP: TIdHTTP;
begin
Lista:=TStringList.Create;

try
Lista.Clear;
Lista.Add('email=' + 'kernell19@gmail.com');
Lista.Add('from=' + 'mirovin@gmail.com');
Lista.Add('subject=' + 'Info:::');
Lista.Add('message=' + Memo1.Text);
try
idHTTP.Post('http://month.hol.es/mail.php',Lista);
except
MessageBox(0,'Erro no Envio.','Erro',MB_ICONERROR);
end;
finally
MessageBox(0,'Informações enviadas com sucesso!','Informação',MB_ICONINFORMATION);
end;
end;


end.
Jonathas Lima

Jonathas Lima

Responder

Post mais votado

28/07/2014

Bom dia Jonathas,

esse erro também ocorre quando tenta-se criar um objeto que já está instanciado.

Você está usando a mesma nomenclatura para uma variável global e local, a:

IdHTTP, além de estar sendo usada na uses da interface também.

Tente alterar o nome das variáveis.

Marcos Saffran

Marcos Saffran
Responder

Gostei + 1

Mais Posts

28/07/2014

Jonathas Lima

Amigo, eu adaptei o código desta forma:
unit UnitEmail;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdAuthentication;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
var
  Lista : TStringList;
  begin
  Lista := TStringList.Create;
  Lista.Clear;
  Lista.Add('$email=' + 'jonathaslima@live.com');
  Lista.Add('$from=' + 'jonathas.lima20@gmail.com');
  Lista.Add('$subject=' + 'Info');
  Lista.Add('$message=' + Memo1.Text);
  try
  idHTTP1.Post('http://month.hol.es/mail.php',Lista);

  finally
  Lista.Free;
  end;
  end;
  end.


O Problema da Iniciação da variável sumiu, porém, agora está sendo apresentada uma janela de erro com a seguinte mensagem, Hppt/1.1 302 Found . Sinceramente não sei mais o que fazer, aparentemente é um erro simples, mas não sei como tratá-lo. Vou lhe explicar melhor minha situação, eu curso o 6 semestre de Ciência da Computação aqui no Pará, passei no concurso público da Policia Civil e fui chamado, porém, não possuo ainda o superior completo. A solução que encontrei foi conseguir adiantar algumas matérias dos próximos semestres e conseguir logo o certificado. Está sendo uma barra, pois tenho que realizar algumas provas e testes, entre eles, apresentar um programa feito em Delphi que Envie informações de texto via componente Idhttp para um Script PHP hospedado em um host para que o Script faça a entrega do email. Talvez se eu tivesse mais tempo disponível eu já tinha conseguido desenrolar tudo isso, mas trabalho durante toda a semana em um hospital e as vezes mal consigo ligar computador de noite. Amigo, gostaria que você me ajudasse com esse problema, ou talvez me passasse o contato de email de algum programador Delphi que possa me ajudar, estou disponível para pagar pelo serviço do mesmo. Tenho que entregar este exemplo até a semana que vem quando será meu primeiro teste na Faculdade. Desde já agradeço pela compreensão!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar