Script enviador de emails
Olá, estou desenvolvendo uma aplicação em Delphi que envia emails através de um 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:
O Script em PHP está hospedado com o endereço www.workbit.net/mail.php e está desta forma:
Gostaria de saber se existe algum erro no Script que deveria receber os parâmetros e entregar os emails. Desde já agredeço!
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
Curtidas 0
Melhor post
Rafael Carrenho
31/07/2014
Olá Jonathas,
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:
Substitua as informações da variável header e assim o seu e-mail não vai ficar preso em algum filtro anti-spam!
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!
GOSTEI 2
Mais Respostas
Jonathas Lima
31/07/2014
Show de bola Milléo! Desculpe minha falta de experiência com a linguagem, mas como seria substituiras informações da variável header?
GOSTEI 0
Jonathas Lima
31/07/2014
Seria isso?
$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";
GOSTEI 0
Rafael Carrenho
31/07/2014
Isso mesmo! Você pode até alterar mais coisas, mas matenha a estrutura, olha só:
que dessa forma vai aparecer bem bacana no cabeçalho do e-mail de quem receber a mensagem
$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
GOSTEI 0