Para não criar outro tópico sobre o assunto estou editando este...
O servidor onde estou hospedando meu site forneceu um scrip: form.htm e o anexa.php para envio dos dados de formularios para o e-mail, incluindo anexo, no entanto vem uma pequena falha, no anexa ele não chamava as variáveis do arquivo form.htm.
O formulário é bem simples, contem apenas o cam "nome" e "anexo", junto vieram as orentações para configuração SMTP assim como de login para ftp e transeferencia de arquivos, esta parte acreito estar toda OK, mas o "anexo" continua não sendo enviado, o "nome" sim, será que alguém consegue indentificar o problema?
OBS.: Não estou pedindo modelo de outros scripts prontos, preciso mesmo identificar o problema deste, se alguém puder dar uma ajuda, fico muito grato.
Desde já muito obrigado pela atenção.
Seguem os scripts:
form.htm
<!-- saved from url=(0022)http://internet.e-mail -->
<html>
<head>
<title>E-mail com arquivo anexo</title>
<script language="JavaScript">
<!--
function teste(){
if (document.form.anexo.value=="") {
alert("É preciso selecionar um arquivo para o Upload!")
document.form.anexo.focus()
return false
}
}
//-->
</script>
</head>
<body>
<form name="form" method="post" action="anexa.php" enctype="multipart/form-data" onSubmit="return teste()">
Nome:<br>
<input type="text" name="nome"><br>
Arquivo: <br>
<input type="file" name="anexo"><br>
<input type="submit" name="botao" value="enviar"><br>
</form>
</body>
</html>
e anexa.php:
<?
##---------------------------------------------------
## Envio de Emails pelo SMTP Autênticado usando PEAR
##---------------------------------------------------
# Mais detalhes sobre o PEAR:
# http://pear.php.net/
#
# Mais detalhes sobre o PEAR Mail:
# http://pear.php.net/manual/en/package.mail.mail-mime.php
##---------------------------------------------------
# Faz o include do PEAR Mail e do Mime.
include ("Mail.php");
include ("Mail/mime.php");
# Variável de teste de upload
$up=0;
# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = 'meuemail@meuservidor.com.br'; //configurei
# Cabeçalho do e-mail.
$headers =
array (
'From' => 'meuemail@meuservidor.com.br'', # O 'From' é *OBRIGATÓRIO*. //configurei
'To' => 'DESTINATARIO@DominioDestinatario.com',
'Subject' => 'TITULO DO E-MAIL'
);
# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = 'EMailDeResposta@DominioDeResposta.com';
# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = 'EMailDeRerornoDeERRO@DominioDeretornoDeErro.com';
# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = '3'; # 1 UrgentMessage, 3 Normal
# Define o tipo de final de linha.
$crlf = "\r\n";
$nome = $_POST[nome]; // eu adicionei no script pois não chamava as variaveis
$anexo = $_POST[anexo]; // eu adicionei no script pois não chamava as variaveis
# Corpo da Mensagem e texto e em HTML
$text = "Nome: ".$nome;
$html = "<HTML><BODY><font color=blue>$text</font></BODY></HTML>";
# Instancia a classe Mail_mime
$mime = new Mail_mime($crlf);
# Coloca o HTML no email
$mime->setHTMLBody($html);
# Efetua o upload do arquivo
if (!empty($anexo) and is_file($anexo)) {
$caminho="/home/meuloginftp/tmp/"; //configurei
$caminho=$caminho.$anexo_name;
# grava o $arquivo no $caminho especificado
copy($anexo,$caminho);
echo "O arquivo foi transferido!<br>";
$up=1;
}else{
echo "<h1>O arquivo não foi transferido!</h1>";
echo "<h2><font color='red'>Caminho ou nome de arquivo Inválido</font></h2>";
}
## # Anexa um arquivo ao email.
$mime->addAttachment($caminho);
# Procesa todas as informações.
$body = $mime->get();
$headers = $mime->headers($headers);
# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params =
array (
'auth' => true, # Define que o SMTP requer autenticação.
'host' => 'smtpmeusite.com.br', # Servidor SMTP //configurei
'username' => 'meuusuario=meusite.com.br', # Usuário do SMTP //configurei
'password' => 'minhasenha' # Senha do seu MailBox. //configurei
);
# Define o método de envio
$mail_object =& Mail::factory('smtp', $params);
# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um
# objeto PEAR_Error. Para ler a mensagem de erro, use o método 'getMessage()'.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result))
{
echo "ERRO ao tentar enviar o email. (" . $result->getMessage(). ")";
}
else
{
echo "Email enviado com sucesso!";
if ($up==1){
unlink($caminho);
}
}
?>
Pergunta
VianeiRoberto
Para não criar outro tópico sobre o assunto estou editando este...
O servidor onde estou hospedando meu site forneceu um scrip: form.htm e o anexa.php para envio dos dados de formularios para o e-mail, incluindo anexo, no entanto vem uma pequena falha, no anexa ele não chamava as variáveis do arquivo form.htm.
O formulário é bem simples, contem apenas o cam "nome" e "anexo", junto vieram as orentações para configuração SMTP assim como de login para ftp e transeferencia de arquivos, esta parte acreito estar toda OK, mas o "anexo" continua não sendo enviado, o "nome" sim, será que alguém consegue indentificar o problema?
OBS.: Não estou pedindo modelo de outros scripts prontos, preciso mesmo identificar o problema deste, se alguém puder dar uma ajuda, fico muito grato.
Desde já muito obrigado pela atenção.
Seguem os scripts:
form.htm
e anexa.php: Editado por VianeiRobertoLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.