Abaixo tem a função com o exemplo de utilização, espero que vocês gostem e qualquer dúvida é só comentar.
<?php function enviar_email($destinatario, $remetente, $assunto, $mensagem) { // dominio do servidor SMTP, para servidores HTTPS coloque o prefixo ssl:// $servidor = "smtp.meuservidor.com"; // usuario do servidor SMTP $usuario = "usuario"; // senha do servidor SMTP $senha = "senha"; // numero da porta do servidor SMTP $success = true; // abro uma conexao por socket com o servidor $socket = @fsockopen($servidor, 25, $errno, $errstr, 10); if ($socket) { $ln = "\r\n"; // pego o texto de retorno do servidor e verifico o codigo da resposta se for 220 ok $response = fgets($socket, 256); if (!preg_match("/^220/", $response)) $success = false; // envio um comando HELO e verifico o codigo da resposta se for 250 ok fwrite($socket, "HELO $servidor".$ln); $response = fgets($socket, 256); if (!preg_match("/^250/", $response)) $success = false; // envio um comando AUTH LOGIN para iniciar a autenticacao fwrite($socket, "AUTH LOGIN".$ln); fgets($socket, 256); // envio o nome de usuario fwrite($socket, base64_encode($usuario).$ln); fgets($socket, 256); // envio senha do servidor fwrite($socket, base64_encode($senha).$ln); // verifico o codigo da resposta se for 235 a autenticacao ocorreu com sucesso $response = fgets($socket, 256); if (!preg_match("/^235/", $response)) $success = false; // envio um comando MAIL FROM e verifico o codigo da resposta se for 250 ok fwrite($socket, "MAIL FROM:$remetente".$ln); $response = fgets($socket, 256); if (!preg_match("/^250/", $response)) $success = false; // envio um comando RCPT TO e verifico o codigo da resposta se for 250 ok fwrite($socket, "RCPT TO:$destinatario".$ln); $response = fgets($socket, 256); if (!preg_match("/^250/", $response)) $success = false; // envio um comando DATA e verifico o codigo da resposta se for 354 ok fwrite($socket, "DATA".$ln); $response = fgets($socket, 256); if (!preg_match("/^354/", $response)) $success = false; // definicao dos cabecalhos da mensagem $headers = "Message-Id: <".time().".".md5(microtime())."@".$_SERVER['SERVER_ADDR'].">".$ln; $headers .= "Date: ".date("r").$ln; $headers .= "X-Priority: 3".$ln; $headers .= "Content-Type: text/plain; charset=\"UTF-8\"".$ln; $headers .= "Subject: $assunto".$ln; $headers .= "To: $destinatario".$ln; $headers .= "From: $remetente".$ln.$ln; $headers .= $mensagem.$ln.".".$ln; fwrite($socket, $headers); $response = fgets($socket, 256); if (!preg_match("/^250/", $response)) $success = false; // envio um comando QUIT e verifico o codigo da resposta se for 221 ok fwrite($socket, "QUIT".$ln); $response = fgets($socket, 256); if (!preg_match("/^221/", $response)) $success = false; // fecho a conexao com o servidor fclose($socket); return $success; } else return false; } $result = enviar_email("destinatario@email.com", "remetente@email.com", "Meu Assunto", "Minha Mensagem"); if ($result) { echo "E-mail enviado com sucesso!"; } else echo "Ocorreu um erro ao tentar enviar o e-mail!"; ?>
Nenhum comentário:
Postar um comentário