Fórum Enviando Email com Delphi com componente IDHTTP #487515

31/07/2014

0

Olá, estou desenvolvendo uma aplicação em Delphi que envia emails através de uma Script em PHP hospedado na locaweb, na aplicação utilizei um componente idhtt e o método post, o problema é que não estou conseguindo fazer o envio dos emails. Gostaria de saber por qual motivo. Segue abaixo meu código, tanto da aplicação quanto o Script em PHP:
unit UnitEmail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, XPMan;
type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    IdHTTP1: TIdHTTP;
    XPManifest1: TXPManifest;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Lista: TStringList;
begin
Lista:=TStringList.Create;
  try
  Lista.Clear;
  Lista.Add('email=' + Edit1.Text);
  Lista.Add('from=' + Edit2.Text);
  Lista.Add('subject=' + Edit3.Text);
  Lista.Add('message=' + Memo1.Text);
    try
      idHTTP1.Post('http://www.workbit.net/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.


O Script em PHP está hospedado com o endereço www.workbit.net/mail.php e está desta forma:
<html>
<head>
<title>Mail PHP</title>
</head>
<body>
<?php
  $email = $_POST['email'] ;
  $from = $_POST['from'];
  $subject = $_POST['subject'];
  $message = $_POST['message'] ;

  mail( $email, $subject,
    $message, "From: $from" );
?>
</body>
</html>


Peço encarecidamente uma ajudar para solucionar este problema, obrigado!
Jonathas Lima

Jonathas Lima

Responder

Post mais votado

31/07/2014

Buenas,

Os parâmetros não tem que ser enviados entre aspas por serem texto ?
Tente:

Lista.Add('email=' + QuotedStr(Edit1.Text));
Lista.Add('from=' + QuotedStr(Edit2.Text));
Lista.Add('subject=' + QuotedStr(Edit3.Text));
Lista.Add('message=' + QuotedStr(Memo1.Text));

Abraççç,
Renato

Renato Rubinho

Renato Rubinho
Responder

Gostei + 1

Mais Posts

31/07/2014

Renato Rubinho

Pensei que o script estivesse OK.
Tentei chamar o script passando os parâmetros direito no browser e não recebi o e-mail também, nem com aspas e nem sem aspas.

http://www.workbit.net/mail.php?email=emailteste@teste.com.br&from=emailteste@teste.com.br&subject=assunto&message=menssagem

http://www.workbit.net/mail.php?email='emailteste@teste.com.br'&from='emailteste@teste.com.br'&subject='assunto'&message='menssagem'

Não tenho conhecimento avançado em php para te ajudar com o script, mas pelo menos para validar teste preenchendo os valores fixos nas variáveis e veja se chamando ao chamar a página ele envia o e-mail. Se nem isso funcionar, o problema já vem do script incorreto.

<html>
<head>
<title>Mail PHP</title>
</head>
<body>
<?php
$email = 'emailteste@teste.com.br'; // preencha um e-mail válido
$from = 'emailteste@teste.com.br'; // preencha um e-mail válido
$subject = 'assunto';
$message = 'mensagem';

mail( $email, $subject,
$message, "From: $from" );
?>
</body>
</html>
Responder

Gostei + 1

31/07/2014

Jonathas Lima

Fala parceiro, eu fiz o teste com os valores fixos tbm e não pegou, vou verificar com a galera do PHP aí no fórum p ver se descubro o problema, você ajudou demais brother, muito obrigado!
Responder

Gostei + 0

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

Aceitar