Script enviador de emails
31/07/2014
0
nit 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=' + QuotedStr(Edit1.Text)); Lista.Add('from=' + QuotedStr(Edit2.Text)); Lista.Add('subject=' + QuotedStr(Edit3.Text)); Lista.Add('message=' + QuotedStr(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>
Gostaria de saber se existe algum erro no Script que deveria receber os parâmetros e entregar os emails. Desde já agredeço!
Jonathas Lima
Post mais votado
31/07/2014
aparentemente o seu código para envio de e-mail está OK (e não precisa da estrutura HTML que você colocou), mas provavelmente o envio pode não estar funcionando por dois motivos:
- Não há um software de envio de e-mail (tal como o PostFix)
- Falta um header para que "burle" o sistema anti-spam do e-mail de destino (acredito que este seja o problema), para isto basta colocar algumas informações, de forma que o seu script fique da seguinte forma:
<?php $email = $_POST['email'] ; $from = $_POST['from']; $subject = $_POST['subject']; $message = $_POST['message'] ; $header .= "Reply-To: Some One <someone@mydomain.com>\r\n"; $header .= "Return-Path: Some One <someone@mydomain.com>\r\n"; $header .= "From: Some One <mydomain@myhost.com>\r\n"; $header .= "Organization: My Organization\r\n"; $header .= "Content-Type: text/plain\r\n"; mail( $email, $subject, $message, $header ); ?>
Substitua as informações da variável header e assim o seu e-mail não vai ficar preso em algum filtro anti-spam!
Rafael Carrenho
Mais Posts
31/07/2014
Jonathas Lima
31/07/2014
Jonathas Lima
$header .= "Reply-To: Some One <jonathaslima@live.com>\r\n"; $header .= "Return-Path: Some One <jonathaslima@live.com>\r\n"; $header .= "From: Some One <webmaster@workbit.hospedagemdesites.ws>\r\n"; $header .= "Organization: My Organization\r\n"; $header .= "Content-Type: text/plain\r\n";
01/08/2014
Rafael Carrenho
$header .= "Reply-To: Jonathas Lima <jonathaslima@live.com>\r\n"; $header .= "Return-Path: Jonathas Lima <jonathaslima@live.com>\r\n"; $header .= "From: WebMaster <webmaster@workbit.hospedagemdesites.ws>\r\n"; $header .= "Organization: Janathas Lima Ltda. S/A Corp.\r\n"; $header .= "Content-Type: text/plain\r\n";
que dessa forma vai aparecer bem bacana no cabeçalho do e-mail de quem receber a mensagem
Clique aqui para fazer login e interagir na Comunidade :)