Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 487541
            [titulo] => Script enviador de emails
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-07-31 16:32:07
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 348199
            [status] => A
            [isExample] => 
            [NomeUsuario] => Rafael Milléo Carrenho
            [Apelido] => Milléo
            [Foto] => 348199_20150713220907.jpg
            [Conteudo] => 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:

[code]

<?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 );
?>

[/code]

Substitua as informações da variável header e assim o seu e-mail não vai ficar preso em algum filtro anti-spam! ) )

Script enviador de emails

PHP
Jonathas Lima
   - 31 jul 2014

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:
#Código

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:
#Código
<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!

Post mais votado

Milléo
   - 31 jul 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:

#Código


<?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!

Jonathas Lima
   - 31 jul 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?

Jonathas Lima
   - 31 jul 2014

Seria isso?

#Código

$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";

Milléo
   - 01 ago 2014

Isso mesmo! Você pode até alterar mais coisas, mas matenha a estrutura, olha só:

#Código

$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