31st mai 2009
Mostrando o potencial da JS Calls PHP #4 – enviando e-mail
Estava fazendo para um freela um envio de e-mail num formulário, com backend PHP, e resolvi usar a JS Calls PHP. Demorou mais tempo do que se fizesse um send.php comum, mas serviu para testar a biblioteca e descobrir uma incompatibilidade em alguns momentos com a Prototype – imcompatibilidade essa já corrigida.
Então, vou mostrar um exemplo de como fazer um formulário onde o usuário digita o e-mail dele, um e-mail de destino e uma mensagem, e a JS Calls PHP faz o envio por e-mail dessa mensagem.
Veja aqui uma página de exemplo!
Criei uma classe chamada MailContato e nela um método, simpleSend(), que recebe três parámetros: e-mail de quem envie, e-mail de destino e a mensagem
<?php
class MailContato {
function __construct() {
}
function simpleSend($sender, $receiver, $message) {
$header = “Content-type: text/html; charset=UTF-8\r\n”;
ini_set(’sendmail_from’, $sender);
mail($receiver, “Contato”, $message, $header) or die(“-1″);
return true;
}
}
?>
No config.php da JS Calls PHP expus a classe sob o nome mailContato e, com isso, posso acessar o método simpleSend passandoos três parâmetros, conforme pode ser visto no html abaixo
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Untitled Document</title>
<script type=”text/javascript” src=”../engine.js”></script>
<script type=”text/javascript” src=”../interface/mailContato.js”></script>
<script type=”application/javascript”>
window.onload = function() {
document.getElementById(“submit”).onclick = function() {
var sender = document.getElementById(“sender”).value;
var receiver = document.getElementById(“receiver”).value;
var msg = document.getElementById(“message”).value;
mailContato.simpleSend(sender, receiver, msg, function(status) {
if(status==true)
alert(“Mensagem enviada com sucesso”);
})
}
}
</script>
</head>
<body>
<h1>JS Calls PHP</h1>
<h2>Exemplo de uso – mensagem por e-mail</h2>
<form action=”#” id=”commentform” method=”POST” onsubmit=”return false;”>
<label for=”sender”>seu e-mail:</label><input type=”text” id=”sender” /><br />
<label for=”receiver”>e-mail destino:</label><input type=”text” id=”receiver” /><br />
sua mensagem:<br />
<textarea id=”message”></textarea>
<input type=”submit” id=”submit” value=”enviar” />
</form>
</body>
</html>
No retorno da função, exibo a mensagem de sucesso caso a funcão retorne true. Simples!
Estava fazendo para um freela um envio de e-mail num formulário, com backend PHP, e resolvi usar a JS Calls PHP. Demorou mais tempo do que se fizesse um send.php comum, mas serviu para testar a biblioteca e descobrir uma incompatibilidade em alguns momentos com a Prototype – imcompatibilidade essa já corrigida.
Então, vou mostrar um exemplo de como fazer um formulário onde o usuário digita o e-mail dele, um e-mail de destino e uma mensagem, e a JS Calls PHP faz o envio por e-mail dessa mensagem.
Veja aqui uma página de exemplo!
Criei uma classe chamada MailContato e nela um método, simpleSend(), que recebe três parámetros: e-mail de quem envie, e-mail de destino e a mensagem
<?php
class MailContato {
function __construct() {}
function simpleSend($sender, $receiver, $message) {
$header = “Content-type: text/html; charset=UTF-8\r\n”;
ini_set(’sendmail_from’, $sender);
mail($receiver, “Contato”, $message, $header) or die(“-1″);
return true;}
}
?>
No config.php da JS Calls PHP expus a classe sob o nome mailContato e, com isso, posso acessar o método simpleSend passandoos três parâmetros, conforme pode ser visto no html abaixo
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Untitled Document</title>
<script type=”text/javascript” src=”../engine.js”></script>
<script type=”text/javascript” src=”../interface/mailContato.js”></script>
<script type=”application/javascript”>
window.onload = function() {
document.getElementById(“submit”).onclick = function() {
var sender = document.getElementById(“sender”).value;
var receiver = document.getElementById(“receiver”).value;
var msg = document.getElementById(“message”).value;
mailContato.simpleSend(sender, receiver, msg, function(status) {if(status==true)
alert(“Mensagem enviada com sucesso”);
})}
}
</script>
</head><body>
<h1>JS Calls PHP</h1>
<h2>Exemplo de uso – mensagem por e-mail</h2><form action=”#” id=”commentform” method=”POST” onsubmit=”return false;”>
<label for=”sender”>seu e-mail:</label><input type=”text” id=”sender” /><br />
<label for=”receiver”>e-mail destino:</label><input type=”text” id=”receiver” /><br />
sua mensagem:<br />
<textarea id=”message”></textarea>
<input type=”submit” id=”submit” value=”enviar” />
</form>
</body>
</html>
No retorno da função, exibo a mensagem de sucesso caso a funcão retorne true. Simples!
Posted by Chris under
javascript, js calls php, php
7 Comments »


