Login
Buscar
Quem está conectado
Há 5 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 5 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 71 em 19/7/2010, 11:47
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| marcelofazan | ||||
| mfelis | ||||
| cabeludo | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| marcio |
Contagem Regressiva em tela de login
16/7/2010, 11:10 por Linghston
Ola amigos, esta é minha primeira participação neste forum e espero poder encontar aqui ajuda para ...
Comentários: 15
Estatísticas
Temos 926 usuários registradosO último usuário registrado atende pelo nome de Maria Tognetti
Os nossos membros postaram um total de 8596 mensagens em 1239 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 vezes (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 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum


» Gerador randomico de chave/senha VFP
» Help do VFP 9 desapareceu
» Acessos no Programação Brasil
» Niver do Alceu
» Report com comandos de impressão @ SAY
» VFP Studio
» Emulacao de MAC em PC
» Imagem
» Formação em produção de games 3D no Rio de Janeiro
» Trazer para frente uma aplicação em execução
» PictureBox com fundo transparente
» Report so imprime primeiro registro
» IE x VFP
» Aplicativos para Dispositivos moveis
» Problemas com Form MDI
» Dataset ou Datatable
» Desabafo de um idoso!
» Select criando cursor apresenta erro
» Comandos alterados de DOS para Visual