Login
Buscar
Quem está conectado
Há 16 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 15 Visitantes :: 2 Motores de buscamarcaobona
[ Ver toda a lista ]
O recorde de usuários online foi de 337 em 27/12/2010, 08:00
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Estatísticas
Temos 3637 usuários registradosO último usuário registrado atende pelo nome de reginaldolimas
Os nossos membros postaram um total de 13978 mensagens em 1958 assuntos
Email + PHP + VFP
Página 1 de 2 • Compartilhe •
Página 1 de 2 • 1, 2 
Email + PHP + VFP
Criei uma forma diferente para enviar emails e decidi compartilhar com os colegas.
A solução consiste em utilizar um código PHP/ juntamente com o [b]VFP.
Para que a mesma funcione corretamente, você precisará ter acesso a um servidor PHP com suporte a SMTP.
Segue o passo a passo:
Antes de mais nada, crie uma página PHP e adicione o seguinte código:
Para utilizar esta página para enviar emails a partir do VFP utilize o código abaixo:
Para utilizar a função faça o seguinte:
Espero que este código seja útil aos colegas!

A solução consiste em utilizar um código PHP/ juntamente com o [b]VFP.
Para que a mesma funcione corretamente, você precisará ter acesso a um servidor PHP com suporte a SMTP.
Segue o passo a passo:
Antes de mais nada, crie uma página PHP e adicione o seguinte código:
- Código:
<?
$to = $_POST['emailDestinatario'];
$subject = $_POST['assunto'];
$html = $_POST['mensagem'];
// Se quizer enviar em formato HTML
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\n";
// Se houver problemas com acentos substitua a linha acima por esta abaixo:
//$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
// Remetente
$headers .= "From: " . $_POST['nomeRemetente'] . " <" . $_POST['emailRemetente'] . ">\r\n";
if (mail($to, $subject, $html, $headers))
{
echo "Email enviado com sucesso !";
}
?>
Para utilizar esta página para enviar emails a partir do VFP utilize o código abaixo:
- Código:
FUNCTION emailphp AS logical
LPARAMETERS ;
nome_remetente AS STRING,;
email_remetente AS STRING,;
email_destinatario AS STRING,;
assunto AS STRING,;
mensagem AS STRING
LOCAL parametros AS STRING && Dados que serão lidos pela página PHP
m.parametros = "emailDestinatario=" + m.email_destinatario + "&"
m.parametros = m.parametros + "assunto=" + m.assunto + "&"
m.parametros = m.parametros + "mensagem=" + m.mensagem + "&"
m.parametros = m.parametros + "nomeRemetente=" + m.nome_remetente + "&"
m.parametros = m.parametros + "emailRemetente=" + m.email_remetente
loxmlhttp = CREATEOBJECT("MSXML2.XMLHTTP")
loxmlhttp.OPEN("POST","http://url.de.sua/pagina.php",.F.)
loxmlhttp.setrequestheader("content-type", "application/x-www-form-urlencoded")
loxmlhttp.SEND(m.parametros)
lcresponse = loxmlhttp.responsetext
loxmlhttp = .NULL.
RETURN ALLTRIM(m.lcresponse)="Email enviado com sucesso !"
ENDFUNC
Para utilizar a função faça o seguinte:
- Código:
LOCAL nome_remetente AS STRING
LOCAL email_remetente AS STRING
LOCAL email_destinatario AS STRING
LOCAL assunto AS STRING
LOCAL mensagem AS STRING
m.nome_remetente = "Nome do Remetente"
m.email_remetente = "email@remetente.com.br"
m.email_destinatario = "email@destinatario.com"
m.assunto = "Assunto do email"
m.mensagem = "Exemplo postado no <a href=http://forum.programacaobrasil.com>Programação Brasil</a><br/><b>Autor: </b>Marcos Guedes"
IF (emailphp(m.nome_remetente, m.email_remetente, m.email_destinatario, m.assunto, m.mensagem)) THEN
MESSAGEBOX("Email enviado com sucesso!")
ELSE
MESSAGEBOX("Erro ao enviar o email!")
ENDIF
Espero que este código seja útil aos colegas!
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
Boa dia,
Marcos utilizei está rotina para enivar email, mas está retornando um exception
"OLE Idispatch exception code O from mdxml3.dll:" voce teve esse problema?
Obrigado
Marcos utilizei está rotina para enivar email, mas está retornando um exception
"OLE Idispatch exception code O from mdxml3.dll:" voce teve esse problema?
Obrigado
Rubens- Começando a Participar

Re: Email + PHP + VFP
Olá, Rubens!Rubens escreveu:Boa dia,
Marcos utilizei está rotina para enivar email, mas está retornando um exception
"OLE Idispatch exception code O from mdxml3.dll:" voce teve esse problema?
Obrigado
Você utilizou, exatamente, esta rotina, ou configurou como citei no tópico?
Para que funcione corretamente você precisa hospedar um arquivo php num servidor com SMTP configurado, e então alterar a URL modelo, na rotina, para o link de seu arquivo php.
Você fez isto?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
Marcos,
Correto. Eu tenho a rotina no meu servidor linux, e pelo que li nos foruns com o mesmo erro não coneguiram solucionar.
O que pode ser?
Correto. Eu tenho a rotina no meu servidor linux, e pelo que li nos foruns com o mesmo erro não coneguiram solucionar.
O que pode ser?
Rubens- Começando a Participar

Re: Email + PHP + VFP
podes me enviar o link do teu arquivo PHP em Mensagem Privada?
Se estais utilizando o código sem alterações e tens o SMTP configurado corretamente no servidor, então deveria estar funcionando perfeitamente.
Obs.: Por uma questão de organização, mande-me um link de um arquivo o qual possas excluir ou renomear depois.

Se estais utilizando o código sem alterações e tens o SMTP configurado corretamente no servidor, então deveria estar funcionando perfeitamente.
Obs.: Por uma questão de organização, mande-me um link de um arquivo o qual possas excluir ou renomear depois.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
Marcos, essa e a rotina. Utilizamos phpmailer.
- Código:
<?
// chamada da classe phpmailer
require_once('../phpmailer/class.phpmailer.php');
// resgatando os dados passados pelo form
$destino =$_POST['emailDestinatario'];
$rementente = "almoxarifado@servidor.com.br";
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$mail = new PHPMailer();
$mail->IsSMTP();
// send via SMTP
$mail->Host = "servidr.com.br";
//seu servidor SMTP
$mail->SMTPAuth = true;
// 'true' para autenticação
$mail->Username = "*******";
// usuário de SMTP
$mail->Password = "*******";
// senha de SMTP
$mail->From = $rementente;
$mail->FromName = 'Almoxarifado';
$mail->AddAddress("$destino",'Almoxarifado');
// $mail->WordWrap = 50;
// Definição de quebra de linha
$mail->IsHTML(true);
// envio como HTML se 'true'
$mail->Subject = $assunto;
$mail->Body = "<b>$mensagem</b>";
if(!$mail->Send())
{
echo "<script>window.alert('Mensagem não enviada'); </script>";
// echo "Mailer Error: ";
}
else
{
echo "<script>window.alert('Mensagem enviada sucesso'); </script>";
}
?>
Rubens- Começando a Participar

Re: Email + PHP + VFP
Rubens, você utilizou este código, ou o que está postado no tópico?Rubens escreveu:Marcos, essa e a rotina. Utilizamos phpmailer.
- Código:
<?
// chamada da classe phpmailer
require_once('../phpmailer/class.phpmailer.php');
// resgatando os dados passados pelo form
$destino =$_POST['emailDestinatario'];
$rementente = "almoxarifado@servidor.com.br";
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$mail = new PHPMailer();
$mail->IsSMTP();
// send via SMTP
$mail->Host = "servidr.com.br";
//seu servidor SMTP
$mail->SMTPAuth = true;
// 'true' para autenticação
$mail->Username = "*******";
// usuário de SMTP
$mail->Password = "*******";
// senha de SMTP
$mail->From = $rementente;
$mail->FromName = 'Almoxarifado';
$mail->AddAddress("$destino",'Almoxarifado');
// $mail->WordWrap = 50;
// Definição de quebra de linha
$mail->IsHTML(true);
// envio como HTML se 'true'
$mail->Subject = $assunto;
$mail->Body = "<b>$mensagem</b>";
if(!$mail->Send())
{
echo "<script>window.alert('Mensagem não enviada'); </script>";
// echo "Mailer Error: ";
}
else
{
echo "<script>window.alert('Mensagem enviada sucesso'); </script>";
}
?>
Este disponibilizado não é o mesmo código da rotina que postei.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
Funciona com PHPMiler, so estou com problema com caracteres em portugues pois tem acentos..
Mas valeu a ídéia.
Mas valeu a ídéia.
Rubens- Começando a Participar

Re: Email + PHP + VFP
Leia o código PHP em minha primeira mensagem, deste tópico.
Deixei em comentário as seguintes linhas:
Qualquer dúvida é só postar.

Deixei em comentário as seguintes linhas:
- Código:
// Se houver problemas com acentos substitua a linha acima por esta abaixo:
//$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
Qualquer dúvida é só postar.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
Marcos,
Fiz umas adapatações no código porém não sei porque sempre retorna como "Erro ao enviar o email", porém envia... se puder dar uma ajuda agradeço =)
Estou usando a classe PHPMailer.
PRG:
BOTÃO:
PHP que recebe:
Fiz umas adapatações no código porém não sei porque sempre retorna como "Erro ao enviar o email", porém envia... se puder dar uma ajuda agradeço =)
Estou usando a classe PHPMailer.
PRG:
- Código:
FUNCTION sndmailphp AS logical
LPARAMETERS varHost AS STRING, varUserHost AS STRING, varPassHost AS STRING, mailDe AS STRING, nomeDe AS STRING, mailPara AS STRING, nomePara AS STRING, mailTitulo AS STRING, Mensagem AS STRING, mailCC AS STRING
LOCAL parametros AS STRING && Dados que serão lidos pela página PHP
m.parametros = "varHost=" + m.varHost + "&" && Servidor SMTP
m.parametros = m.parametros + "varUserHost=" + m.varUserHost + "&" && Usuário SMTP
m.parametros = m.parametros + "varPassHost=" + m.varPassHost + "&" && Senha SMTP
m.parametros = m.parametros + "mailDe=" + m.mailDe + "&" && Email Remetente
m.parametros = m.parametros + "nomeDe=" + m.nomeDe + "&" && Nome Remetente
m.parametros = m.parametros + "mailPara=" + m.mailPara + "&" && Email Destinatário
m.parametros = m.parametros + "nomePara=" + m.nomePara + "&" && Nome Destinatário
m.parametros = m.parametros + "mailTitulo=" + m.mailTitulo + "&" && Título do Email
m.parametros = m.parametros + "Mensagem=" + m.Mensagem + "&" && Conteúdo
m.parametros = m.parametros + "mailCC=" + m.mailCC + "&" && Com Cópia Para
loxmlhttp = CREATEOBJECT("MSXML2.XMLHTTP")
loxmlhttp.OPEN("POST","URL_ARQUIVO_PHP",.F.)
loxmlhttp.setrequestheader("content-type", "application/x-www-form-urlencoded")
loxmlhttp.SEND(m.parametros)
lcresponse = loxmlhttp.responsetext
loxmlhttp = .NULL.
RETURN ALLTRIM(m.lcresponse)="Email enviado com sucesso !"
ENDFUNC
BOTÃO:
- Código:
LOCAL varHost AS STRING
LOCAL varUserHost AS STRING
LOCAL varPassHost AS STRING
LOCAL mailDe AS STRING
LOCAL nomeDe AS STRING
LOCAL mailPara AS STRING
LOCAL nomePara AS STRING
LOCAL mailTitulo AS STRING
LOCAL Mensagem AS STRING
LOCAL mailCC AS STRING
varHost = "smtp.ews.com.br"
varUserHost = "administrador@ews.com.br"
varPassHost = "minhasenha"
mailDe = "administrador@ews.com.br"
nomeDe = "Administrador"
mailPara = "fulano@cliente.com.br"
nomePara = "Fulano"
mailTitulo = "titulo do mail"
Mensagem = "Teste"
mailCC = "copia@ews.com.br"
IF sndmailphp(varHost, varUserHost, varPassHost, mailDe, nomeDe, mailPara, nomePara, mailTitulo, Mensagem, mailCC)
MESSAGEBOX("Email enviado com sucesso!")
ELSE
MESSAGEBOX("Erro ao enviar o email!")
ENDIF
PHP que recebe:
- Código:
<?php
function sndEmail($varHost, $varUserHost, $varPassHost, $mailDe, $nomeDe, $mailPara, $nomePara, $mailTitulo, $Mensagem, $mailCC){
include('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = $varHost;
$mail->SMTPAuth = true;
$mail->Username = $varUserHost;
$mail->Password = $varPassHost;
$mail->From = $mailDe;
$mail->FromName = $nomeDe;
$mail->AddAddress($mailPara, $nomePara);
$mail->AddBCC($mailCC, $mailDe);
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->AddReplyTo("$mailDe","$nomeDe");
$mail->Subject = $mailTitulo;
$body=$Mensagem;
$body=eregi_replace("[\]",'',$body);
$mail->MsgHTML($body);
$mail->Body = $body;
if(!$mail->Send()){
return 1;
exit;
}
}
if ($_POST['varHost']){
if ($_POST['varUserHost']){
if ($_POST['varPassHost']){
if ($_POST['mailDe']){
if ($_POST['nomeDe']){
if ($_POST['mailPara']){
if ($_POST['nomePara']){
if ($_POST['mailTitulo']){
if ($_POST['Mensagem']){
if ($_POST['mailCC']){
$varHost = ($_POST['varHost']);
$varUserHost = ($_POST['varUserHost']);
$varPassHost = ($_POST['varPassHost']);
$mailDe = ($_POST['mailDe']);
$nomeDe = ($_POST['nomeDe']);
$mailPara = ($_POST['mailPara']);
$nomePara = ($_POST['nomePara']);
$mailTitulo = ($_POST['mailTitulo']);
$Mensagem = ($_POST['Mensagem']);
$mailCC = ($_POST['mailCC']);
if (sndEmail($varHost, $varUserHost, $varPassHost, $mailDe, $nomeDe, $mailPara, $nomePara, $mailTitulo, $Mensagem, $mailCC)==0){;
echo 'Email enviado com sucesso' ;
}
}
}
}
}
}
}
}
}
}
}
?>
Última edição por Marcos Guedes em 19/3/2010, 14:27, editado 1 vez(es) (Razão : Url retirada!)

djguina- Começando a Participar

Re: Email + PHP + VFP
Caro, Djguina use use form php do phpmailer. Para mim funciona e meu unico problema é em relação aos acentos que não consegui corrigir.
- Código:
<?
// chamada da classe phpmailer
require_once('../phpmailer/class.phpmailer.php');
// resgatando os dados passados pelo form
$destino =$_POST['emailDestinatario'];
$rementente = "almoxarifado@***.com.br";
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$mail = new PHPMailer();
$mail->IsSMTP();
// send via SMTP
$mail->Host = "***.com.br.br";
//seu servidor SMTP
$mail->SMTPAuth = true;
// 'true' para autenticação
$mail->Username = "almoxarifado";
// usuário de SMTP
$mail->Password = "**";
// senha de SMTP
$mail->From = $rementente;
$mail->FromName = 'Almoxarifado Central do LIM';
$mail->AddAddress("$destino",'');
// $mail->WordWrap = 50;
// Definição de quebra de linha
$mail->IsHTML(true);
$mail->CharSet = 'iso-8859-1';
// envio como HTML se 'true'
$mail->Subject = $assunto;
$mail->Body = "<b>$mensagem</b>";
if(!$mail->Send())
{
echo "<script>window.alert('Mensagem não enviada'); </script>";
// echo "Mailer Error: ";
}
else
{
echo "<script>window.alert('Mensagem enviada sucesso'); </script>";
}
?>
Rubens- Começando a Participar

Re: Email + PHP + VFP
Rubens,
Não estou tendo problemas com esse fonte que uso, pois uso exatamente igual em meus sites PHP, portanto estou criando uma classe única para tudo.
Minha única dúvida é mesmo com relação ao retorno do PHP ao VFP.
No seu caso, acho que você deveria alterar o parâmetro de Charset. Eu utilizo o UTF-8 sempre, e não tenho problemas nenhum com acentuação.
Exemplo usando suas variáveis:
Abraços.
Não estou tendo problemas com esse fonte que uso, pois uso exatamente igual em meus sites PHP, portanto estou criando uma classe única para tudo.
Minha única dúvida é mesmo com relação ao retorno do PHP ao VFP.
No seu caso, acho que você deveria alterar o parâmetro de Charset. Eu utilizo o UTF-8 sempre, e não tenho problemas nenhum com acentuação.
Exemplo usando suas variáveis:
- Código:
$assunto = utf8_decode($_POST['assunto']);
$mensagem = utf8_decode($_POST['mensagem']);
Abraços.

djguina- Começando a Participar

Re: Email + PHP + VFP
Djguina, irei analisar o teu código hoje a noite, quando chegar em casa.
Obs.: Removi o link do exemplo para evitar problemas futuros.

Rubens, O servidor em que estais hospedando o arquivo php é windows, ou linux?
Tente a dica de utilizar o utf8_encode como citou, o Djguina.

Obs.: Removi o link do exemplo para evitar problemas futuros.

Rubens, O servidor em que estais hospedando o arquivo php é windows, ou linux?
Tente a dica de utilizar o utf8_encode como citou, o Djguina.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: Email + PHP + VFP
=D esqueci de link kkkkkkkkk valew Marcos...
ah; é utf8_decode() =D
ah; é utf8_decode() =D

djguina- Começando a Participar

Re: Email + PHP + VFP
ops!djguina escreveu:=D esqueci de link kkkkkkkkk valew Marcos...
ah; é utf8_decode() =D
valeu a observação!
utf8_encode é para o retorno.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Página 1 de 2 • 1, 2 
Página 1 de 2
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
» Criar Variáveis em sequencia
» No final a Impressora não Ejecta cem corta o papel
» Ajuda com Imagens no MySQL
» Instalando MySQL no linux
» Como Criar arquivos de Log`s para certos usuarios
» MySQL X VFP @MEMO
» Dirf
» EXE Instalador Não Executa
» SQL Server Setup
» localizar registro no postgreslq (alterar/incluir)
» Saber se existe uma tabela??
» Empacotar arquivos em um único executável
» VAGAS ANALISTA DE SISTEMAS - VISUAL FOX
» Escrever a DATA por extenso
» ActionScript - Introdução
» Selecionar campo com mais de 9 caracteres
» CEP do BRASIL e dos UFs do brasil com codigo do IBGE para nf - <<<
» Tutorial HTML
» PHP + CSS