-
Similar Content
-
By analuciagpontes
Galera...
Tenho uma hospedagem no Hostgator e quero fazer um phpmailer.... Só que não dá pra fazer com 2 arquivos (um em html e outro em php). Como faço para chamar a função no form action?
Envio abaixo o código que está sendo usado.
<html>
<head>
<title>Formulario Fale conosco</title>
<style>
body { padding: 50px 100px; font-size: 13px; font-family: arial, Tahoma, sans-serif; }
a { color:#000; } h2 { margin-bottom: 20px; color: #133141; }
input, textarea { padding: 10px; border: 1px solid #E5E5E5; width: 200px; color: #999999; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; }
textarea { width: 400px; height: 150px; max-width: 400px; line-height: 18px; }
input:hover, textarea:hover, input:focus, textarea:focus { border-color: 1px solid #C9C9C9; box-
shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; }
.form label { margin-bottom: 10px; color: #999999; display: block; }
.submit input { width: 100px; height: 40px; background-color: #133141; color: #FFF; border-radius: 3px; moz-border-radius: 3px; -webkit-border-radius: 3px; }
</style>
</head>
<body>
<?php
if (isset($_POST['BTEnvia'])){
$function conec (mysql_connect ("XXX.hostgator.com.br","XXX", "XXX", "XXX"));{
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$mensagem = $_POST['mensagem'];
$email_remetente = "XXX";
$email_destinatario = "XXX";
$email_reply = "$email";
$email_assunto = "Contato formmail";
$email_conteudo = "Nome = $nome \n";
$email_conteudo .= "Email = $email \n";
$email_conteudo .= "Telefone = $telefone \n";
$email_conteudo .= "Mensagem = $mensagem \n";
$email_headers = implode ( "\n",array ( "From: $email_remetente", "Reply-To: $email_reply", "Return-Path: $email_remetente","MIME-Version: 1.0","X-Priority: 3","Content-Type: text/html; charset=UTF-8" ) );
}
if (mail ($email_destinatario, $email_assunto, nl2br($email_conteudo), $email_headers)){
echo "E-Mail enviado com sucesso!";
}
else{
echo "Falha no envio do E-Mail!"; }}
?>
<form method="POST" action="conec()">
<p>
Nome:<br />
<input type="text" size="30" name="nome">
</p>
<p>
E-mail:<br />
<input type="text" size="30" name="email">
</p>
<p>
Telefone:<br />
<input type="text" size="35" name="telefone">
</p>
<p>
Mensagem:<br />
<input type="text" size="35" name="mensagem">
</p>
<p>
<input type="submit" name="BTEnvia" value="Enviar">
<input type="reset" name="BTApaga" value="Apagar">
</p>
</form>
</body>
</html>
-
By Gustavo2503
Estes são alguns pontos do que eu preciso
Eu tenho um sistema que em cada registro tem um ou mais anexos. Os nomes destes anexos estão guardados no banco de dados, e os arquivos ficam na pasta anexos/ no servidor. O usuário manda este registro via email e os anexos devem ir juntos. Eu estou usando a função do PHP mail(). Objetivo: Enviar um email com um ou mais anexos
Problema: Este código só está enviando um anexo, que é o último anexo que a query pega.
OBS.: Eu não entendo de boundary e de anexos por email, eu peguei esse código na internet, mas eu fiz algumas alterações nele, porque no código original só mandava um anexo.
$assunto = "Registros"; $boundary = "XYZ-".md5(date("dmYis"))."-ZYX"; // cabeçalho do email $cabecalho = "MIME-Version: 1.0" . PHP_EOL; $cabecalho .= "Content-Type: multipart/mixed; "; $cabecalho .= "boundary=" . $boundary . PHP_EOL; $cabecalho .= "$boundary" . PHP_EOL; $msg = ""; // Anexos $sql = " SELECT A.LOCAL, A.ARQUIVO FROM TB_ANEXOS AS A LEFT JOIN TB_REGISTROS AS R ON (A.ID_REGISTRO = R.ID) WHERE R.ID = $ID "; $resultado = mysqli_query($link, $sql); if ($resultado){ while ($dados = mysqli_fetch_array($resultado, MYSQLI_ASSOC)){ $LOCAL = $dados['LOCAL']; $ARQUIVO_NAME = $dados['ARQUIVO']; $path = 'anexos/'.$LOCAL; $fileType = mime_content_type( $path ); // Pegando o conteúdo do arquivo $fp = fopen( $path, "rb" ); // abre o arquivo enviado $anexo = fread( $fp, filesize( $path ) ); // calcula o tamanho $anexo = chunk_split(base64_encode( $anexo )); // codifica o anexo em base 64 fclose( $fp ); // fecha o arquivo $msg.= "Content-Type: ". $fileType ."; name=\"". $ARQUIVO_NAME . "\"" . PHP_EOL; $msg.= "Content-Transfer-Encoding: base64" . PHP_EOL; $msg.= "Content-Disposition: attachment; filename=\"". $ARQUIVO_NAME . "\"" . PHP_EOL; $msg.= "$anexo" . PHP_EOL; $msg.= "--$boundary" . PHP_EOL; } } $msg.= "--$boundary" . PHP_EOL; $msg.= "Content-Type: text/html; charset='utf-8'" . PHP_EOL; $msg.= " <!doctype html> <html lang='pt-br'> <head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>$assunto</title> <style> h2, b, legend { color: #2d2d2d; } </style> </head> <body> <p>CORPO DO EMAIL</p> </body> </html> "; $msg.= "--$boundary" . PHP_EOL; if(mail($para, $assunto, $msg, $cabecalho)) { echo "<p>Email enviado com sucesso</p>"; } else { echo '<p style="color: #f00">Erro!</p>'; }
-
By vinihhylian0103
Esse é o código que estou tentando usar:
<?php $nome = $_POST['nome']; $arquivo = $_FILES["arquivo"]; $assunto = $_POST['assunto']; // Para quem vai ser enviado o email $para = $_POST['email']; $boundary = "XYZ-".date("dmYis")."-ZYX"; $fp = fopen($arquivo["tmp_name"], "rb"); // abre o arquivo enviado $anexo = fread($fp, filesize($arquivo["tmp_name"])); // calcula o tamanho $anexo = base64_encode($anexo); // codifica o anexo em base 64 fclose($fp); // fecha o arquivo // cabeçalho do email $headers = "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed; "; $headers .= "boundary='$boundary'\r\n"; $headers .= "$boundary\n"; // email $mensagem = "--$boundary\n"; $mensagem .= "Content-Type: text/html; charset='utf-8'\n"; $mensagem .= "<strong>Nome: </strong> $nome \r\n"; $mensagem .= "--$boundary \n"; // anexo $mensagem .= "Content-Transfer-Encoding: base64 \n"; $mensagem .= "Content-Disposition: attachment; filename=\"".$arquivo['name']."\" \r\n"; $mensagem .= "$anexo \n"; $mensagem .= "--$boundary \n"; // enviar o email mail($para, $assunto, $mensagem, $headers); ?> e estou tendo o seguinte erro:
( ! ) Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\email\email.php on line 28 Call Stack # Time Memory Function Location 1 0.0010 385096 {main}( ) ...\email.php:0 2 0.0430 386472 mail ( ) ...\email.php:28 -
By Jiraya Tupiniquim
Pessoal, boa noite!
Pessoa, estou com um erro para enviar e-mail pelo formulário na conta da Godaddy. Alguém pode me ajudar?
Ao tentar enviar o e-mail aparece o seguinte código de erro.
"SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting"
segue abaixo meu código, engraçado é que estava funcionando, mas não mais, não mexemos em nenhuma configuração.
/* apenas dispara o envio do formulário caso exista $_POST['enviarFormulario']*/ if (isset($_POST['enviarFormulario'])){ /*** INÍCIO - DADOS A SEREM ALTERADOS DE ACORDO COM SUAS CONFIGURAÇÕES DE E-MAIL ***/ $enviaFormularioParaNome = 'NOME DO CLIEnTE'; $enviaFormularioParaEmail = 'contato@exemplo.com.br'; $caixaPostalServidorNome = 'NOME DA EMPRESS| Site'; $caixaPostalServidorEmail = 'contato@exemplo.com.br'; $caixaPostalServidorSenha = 'SENHA DO CLIENTE'; /*** FIM - DADOS A SEREM ALTERADOS DE ACORDO COM SUAS CONFIGURAÇÕES DE E-MAIL ***/ /* abaixo as veriaveis principais, que devem conter em seu formulario*/ $remetenteNome = $_POST['remetenteNome']; $remetLastName = $_POST['remetLastName']; $remetenteEmail = $_POST['remetenteEmail']; $assunto = $_POST['assunto']; $telefone = $_POST['telefone']; $remetenteCidade = $_POST['remetenteCidade']; $remetenteEstado = $_POST['remetenteEstado']; $mensagem = $_POST['mensagem']; // Formulário $mensagemConcatenada = 'SITE - Site'.'<br/>'; $mensagemConcatenada .= '-------------------------------<br/>'; $mensagemConcatenada .= 'Nome: <b>'.$remetenteNome.'</b><br/>'; $mensagemConcatenada .= 'Sobrenome: <b>'.$remetLastName.'</b><br/>'; $mensagemConcatenada .= 'E-mail: <b>'.$remetenteEmail.'</b><br/>'; $mensagemConcatenada .= 'Assunto: <b>'.$assunto.'</b><br/>'; $mensagemConcatenada .= 'Telefone: <b>'.$telefone.'</b><br/>'; $mensagemConcatenada .= 'Cidade: <b>'.$remetenteCidade.'</b><br/>'; $mensagemConcatenada .= 'Estado: <b>'.$remetenteEstado.'</b><br/>'; $mensagemConcatenada .= '-------------------------------<br/>'; $mensagemConcatenada .= 'Mensagem: "<b>'.$mensagem.'"</b><br/>'; /********************************** A PARTIR DAQUI NAO ALTERAR ***********************************/ require_once('phpmail/PHPMailerAutoload.php'); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = "localhost"; $mail->SMTPAuth = false; $mail->SMTPSecure = false; $mail->Charset = 'utf8_decode()'; $mail->Port = 25; $mail->Username = ""; $mail->Password = ""; $mail->SMTPDebug = 0; $mail->From = $caixaPostalServidorEmail; $mail->FromName = utf8_decode($caixaPostalServidorNome); $mail->IsHTML(true); $mail->Subject = utf8_decode($assunto); $mail->Body = utf8_decode($mensagemConcatenada); $mail->AddAddress($enviaFormularioParaEmail,utf8_decode($enviaFormularioParaNome)); if(!$mail->Send()){ $mensagemRetorno = '<h5>Erro ao enviar formulário:</h5>'. print($mail->ErrorInfo); }else{ $mensagemRetorno = '<h5>Formulário enviado com sucesso!</h5>'; } }
-