Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Rodrigo Jung Alves

Script para envio de email com anexo

Recommended Posts

Boa tarde pessoal!

 

Estou com um pequeno problema.

Estou terminando um site para uma empresa de minha familia, e em um das paginas do site a pessoa me pediu para fazer um formulário para que pessoas interessadas em trabalhar na empresa enviem seus curriculos.

 

O formulario em HTML esta tranquilo.

 

O meu problema é no arquivo em PHP para enviar o dito curriculo. Gostaria de fazer de um modo que ao clicar no botao enviar, o script em PHP seja ativado, fazendo o envio do email para a pessoa encarregada da análise dos curriculos.

 

Dei uma pesquisada na net, achei o PHPMailer. Fiz alguns testes (com os próprios exemplos deles), tentando usar minha conta de GMAIL para tal... mas não funciona.

 

 

Alguem poderia me dar alguma dica ou alguma coisa semelhante sobre o assunto?

 

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia seria mandar como anexo?

 

Sempre que você fazer um upload de arquivo com html, o php consegue resgatá-lo na variável $_FILES['name_do_campo_html'].

 

A partir daí você pode pesquisar como anexar arquivos ao e-mail.

 

http://forum.imasters.com.br/topic/453472-anexo-no-phpmailer/

 

Boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...

 

Usei o próprio script de exemplos do PHPMailer, claro, só colocando os dados do meu email... para os testes

 

o codigo esta assim

<html>
<head>
<title>PHPMailer - SMTP (Gmail) basic test</title>
</head>
<body>

<?php

//error_reporting(E_ALL);
error_reporting(E_STRICT);

date_default_timezone_set('America/Toronto');

require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail = new PHPMailer();

$body = file_get_contents('contents.html');
$body = eregi_replace("[\]",'',$body);

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "yourusername@gmail.com"; // GMAIL username
$mail->Password = "yourpassword"; // GMAIL password

$mail->SetFrom('name@yourdomain.com', 'First Last');

$mail->AddReplyTo("name@yourdomain.com","First Last");

$mail->Subject = "PHPMailer Test Subject via smtp (Gmail), basic";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");

$mail->Send();

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}

?>

</body>
</html>

 

 

 

o erro que aparece é esse aqui:

 

 

SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (31177376)
SMTP Error: Could not connect to SMTP host. SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (31175712)
SMTP Error: Could not connect to SMTP host. Mailer Error: SMTP Error: Could not connect to SMTP host.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, menos um erro rs

 

coloque no inicio:

 

ini_set('display_errors', 1);
error_reporting(E_ALL);

Mude a linha:

$mail->SMTPDebug = 2;

Para:

$mail->SMTPDebug = 1;

 

Veja se tem alguma mudança

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Raul.... agora apareceu vários erros,

 

 

 

( ! ) Deprecated: Function eregi_replace() is deprecated in C:\wamp\www\PHPMailer_v5.1\examples\TesteGmailBasic.php on line 20 Call Stack # Time Memory Function Location 1 0.0007 256168 {main}( ) ..\TesteGmailBasic.php:0

 

( ! ) Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\wamp\www\PHPMailer_v5.1\class.phpmailer.php on line 1471 Call Stack # Time Memory Function Location 1 0.0007 256168 {main}( ) ..\TesteGmailBasic.php:0 2 0.0059 791304 PHPMailer->Send( ) ..\TesteGmailBasic.php:47 3 0.0062 795376 PHPMailer->CreateBody( ) ..\class.phpmailer.php:559 4 0.0063 798472 PHPMailer->AttachAll( ) ..\class.phpmailer.php:1228 5 0.0064 801696 PHPMailer->EncodeFile( ) ..\class.phpmailer.php:1437

 

( ! ) Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\wamp\www\PHPMailer_v5.1\class.phpmailer.php on line 1475 Call Stack # Time Memory Function Location 1 0.0007 256168 {main}( ) ..\TesteGmailBasic.php:0 2 0.0059 791304 PHPMailer->Send( ) ..\TesteGmailBasic.php:47 3 0.0062 795376 PHPMailer->CreateBody( ) ..\class.phpmailer.php:559 4 0.0063 798472 PHPMailer->AttachAll( ) ..\class.phpmailer.php:1228 5 0.0064 801696 PHPMailer->EncodeFile( ) ..\class.phpmailer.php:1437

 

 

 

todos no proprio PHPMailer, de comandos que cairam fora (pelo que entendi)

 

 

Todos tirando o primeiro, no caso, que é no primeiro.

 

 

 

 

da pra trocar essa por

 

str_replace

 

 

Eu procurei soluções para o magic_quotes

 

 

 

 

a maioria que eu achei era pra deletar ou comentar as linhas....

 

fiz isso.... e agora novamente não apareceu mais nada.... nem erro, nem mensagens... nem email.... uiehuiehiehuie, que bucha!

 

 

Alguem tem uma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal!

 

Tentei mais algumas coisas e agora empaquei em outra parte

 

 

Meus scripts estão assim

 

 

HTML:

 

<script type="text/javascript" language="javascript">// <![CDATA[
function checa_formulario(email){ if (email.nome.value == ""){ alert("Por Favor não deixe o seu nome em branco!!!"); email.nome.focus(); return (false); } if (email.email_from.value == ""){ alert("Por Favor não deixe o seu email em branco!!!"); email.email_from.focus(); return (false); } if (email.email.value == ""){ alert("não deixe o email destinatario em branco!!!"); email.email.focus(); return (false); } if (email.assunto.value == ""){ alert("não deixe o assunto em branco!!!"); email.assunto.focus(); return (false); } }
// ]]></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<style type="text/css"><!--

--></style> 

<form action="../phpMailSent.php" enctype="multipart/form-data" method="post" name="email" onsubmit="return checa_formulario(this)">
<table width="32%" border="0" align="center">
<tbody>
<tr>
<td>
<div align="right"><span class="texto">Nome</span></div></td>
<td><input id="nome" type="text" name="nome" /></td>
</tr>
<tr>
<td width="80%">
<div class="texto" align="right">Email para contato:</div></td>
<td width="55%"><input class="email" type="text" name="email_from" /></td>
</tr>
<tr>
<td>
<div class="texto" align="right">Observação</div></td>
<td><textarea id="mensagem" cols="50" name="mensagem" rows="10"></textarea></td>
</tr>
<tr>
<td>
<div class="texto" align="right">Currículo</div></td>
<td><input type="file" name="arquivo" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Submit" value="Enviar" /></td>
</tr>
</tbody>
</table>
</form> 

 

 

 

 

PHP:

 

<?php


//Pega as variáveis enviadas pelo Script HTML e salva em variáveis
$nome = $_POST['nome'];
$email_de = $_POST['email_from'];
$mensagem = "Texto de Observação, enviado pelo próprio interessado. Segue adiante: ";
$mensagem .= $_POST['mensagem'];
$anexo = $_POST['arquivo'];
$assunto = "Curriculo para análise de: ";
$assunto .= $nome;
$anexo = $_FILES['arquivo'];

require_once('class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

try {
$mail->Host = "mail.orghes.com.br"; // SMTP server
$mail->SMTPDebug = 1; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "mail.orghes.com.br"; // sets the SMTP server
$mail->Port = 25; //
$mail->Username = "admin@orghes.com.br"; // SMTP account username
$mail->Password = "password"; // SMTP account password
$mail->AddReplyTo($email_de, $nome);
$mail->AddAddress('admin@orghes.com.br', 'Vanessa Munch');
$mail->SetFrom($email_de, $nome);
$mail->Subject = $assunto;
$mail->AltBody = $mensagem;
$mail->MsgHTML($mensagem);
// $mail->AddAttachment($_FILES['arquivo']); // Curriculo enviado pelo usuário
$mail->Send();
echo "Message Sent OK</p>\n";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
echo "phpmailer exception";
/*echo $nome;
echo $email_de;
echo $assunto;
echo $mensagem;
echo $_FILES['arquivo']['name'];
echo $_FILES['arquivo']['type'];
echo $_FILES['arquivo']['size'];
echo $_FILES['arquivo']['tmp_name'];
echo $_FILES['arquivo']['error'];*/
echo $_FILES['arquivo'];

} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
echo "exception";
echo $nome;
echo $email_de;
echo $assunto;
echo $mensagem;
echo $_FILES['arquivo']['name'];
echo $_FILES['arquivo']['type'];
echo $_FILES['arquivo']['size'];
echo $_FILES['arquivo']['tmp_name'];
echo $_FILES['arquivo']['error'];
}
?>

 

 

esses echos todos são para ver se as variaveis estavam com as informações corretas

deixei comentado a linha do anexo, por que tava com erro

vou tentar fazer primeiro enviar o email

depois eu vejo esses outros problemas, hehehe

 

alguem saberia o por que que nao envia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.