16 de mar. de 2011

como enviar email usando php + delphi + post

1 - criar o arquivo php usando o metodo POST colando 
o codigo abaixo no bloco de notas e salvando como email.php:

<?
  $remetente = $_POST['remetente'];
  $destinatario = $_POST['destinatario'];
  $assunto = $_POST['assunto'];
  $mensagem = $_POST['mensagem'] ;

  mail( $email, $subject, $message, "From: $from" );
?>



2 - no delphi usar a rotina para enviar os dados para a pagina
acima hospedada no servidor usando o componente idhttp da paleta indy e 3 edits + 1 memo:


procedure rtnenviar_email_php_post;
var
  E: TStringList;
begin
  E := TStringList.Create;
try
  E.clear;
  E.add('remetente=' + edit1.Text);
  E.Add('destinatario=' + edit2.Text);
  E.Add('assunto=' + edit3.Text);
  E.Add('mensagem=' + memo1.Text);

  try
    idHTTP1.Post('http://www.sitehospedado/email.php',E);
  except
    Showmessage('falhou.');
  end;
    Showmessage('enviou');
finally
  E.free;
end;
end;

2 comentários:

  1. Como anexar arquivos?

    ResponderExcluir
    Respostas
    1. se voce ja tem uma php pra upload. basta usar

      var
      http_par: TIdMultiPartFormDataStream;
      begin
      // criar instancia
      http_par := TIdMultiPartFormDataStream.Create;
      // associar ao parametro do teu php que sobe o
      // arquivo e dizer que o parametro eh tipo arquivo
      try
      http_par.AddFile('arquivo','c:\arquivo.txt', 'multipart/mixed');
      // enviar
      http.Post(url, http_par);


      obs.: se n ir.. assim como todo envio usando indy configure o agente do idhttp assim:

      Idhttp1.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV2';

      se nao entendeu ainda.. guenta 1 semaninha que desenho o esquema pra ti ;)

      Excluir