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!

Faça download da JS Calls PHP aqui

Posts relacionados

Avalie

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (No Ratings Yet)

7 Responses to “Mostrando o potencial da JS Calls PHP #4 – enviando e-mail”

  1. Thiago Cavalcanti says with Firefox on Ubuntu 8.04

    Isso me deu uma idéia pra um trabalho que estou fazendo agora, se funcionar eu te mostro…

  2. Mayron Cachina says with Firefox on Windows XP

    Muito boa a classe, eu fiz um exemplo usando jquery+php+ER…
    Certo que ele pode ser bastante melhorada mais funciona redondinho!

  3. Chris says with Firefox on Ubuntu

    @Thiago mostra ae a idéia, se rolar!

    @Mayron bota o link ae :)

  4. Mayron Cachina says with Firefox on Windows XP

    http://cachina.wordpress.com/2009/06/01/envio-de-e-mail-com-jquery-e-php/

  5. Mayron Cachina says with Firefox on Windows XP

    Um exemplo funcional: http://mayroncachina.net/contato.php

  6. Chris says with Firefox on Ubuntu

    Ah, agora vi lá!
    Basicamente o que tu faz é dar submit num formulário – não necessariamente que faça envio de e-mail – pela JQuery, né?

    É mais ou menos o que eu mostrei nesse post aqui, http://www.andafter.org/blogs/odesenvolvedor/publicacoes/usando-a-prototype-passo-2-submit-de-form-por-ajax_587.html, usando a Prototype, que fiz lá no O Desenvolvedor (http://www.odesenvolvedor.com.br)

    []s!

  7. Mayron Cachina says with Firefox on Windows XP

    Isso mesmo!

Leave a Reply