Ir para conteúdo
Fórum Script Brasil
  • 0

enviar e-mails com anexo


ladytf

Pergunta

Bom dia.

criei um formulário que permite a quem envia mensagem poder enviar uma foto.

Mas algo esta a dar erro. O erro que aparece é:

Warning: fopen() [function.fopen]: Filename cannot be empty in /home/a7695763/public_html/acao/s_envio_receitas.php on line 15
Warning: fread(): supplied argument is not a valid stream resource in /home/a7695763/public_html/acao/s_envio_receitas.php on line 16
Warning: fclose(): supplied argument is not a valid stream resource in /home/a7695763/public_html/acao/s_envio_receitas.php on line 18

o meu codigo é o seguinte:

<?php
$to="ladytf@gmail.com";
$assunto="Sugestão MinhameMinhame";
$nome=$_POST['nome'];
$email=$_POST['email'];
$tempo=$_POST['tempo'];
$dificuldade=$_POST['dificuladade'];
$ingredientes=$_POST['ingredientes'];
$preparacao=$_POST['preparacao'];
$anexo=$_FILES["foto"];

$boundary = "XYZ-".date("dmYis")."-ZYX";
$fp=fopen($anexo["tmp_name"],"rb");
$arquivo=fread($fp, filesize($anexo["tmp_name"]));
$arquivo=base64_encode($arquivo);
fclose($fp);
?>
<?php
//mensagem
$corpo.="<strong>Nome:</strong>$nome<br>";
$corpo.="<strong>E-mail:</strong>$email<br>";
$corpo.="<strong>Tempo:</strong>$tempo<br>";
$corpo.="<strong>Dificuldade:</strong>$dificuldade<br>";
$corpo.="<strong>Ingredientes:</strong>$ingredientes<br>";
$corpo.="<strong>Preparação:</strong>$preparacao<br>";
$corpo.="--$boundary \n";

//anexo
$corpo.="Content-Type: ".$anexo["type"].";name=\"".$anexo['name']."\"\n";
$corpo.="Content-Transfer-Encoding: base64\n";
$corpo.= "Content-Disposition: attachment; filename=\"".$anexo['name']."\"\n";
$corpo.= "$arquivo \n";
$corpo.="--$boundary \n";


//cabeçalho e-mail
$header="Content-Type: text/html; charset=utf-8\n";
$header.="From:$email Reply-to:$email";
$header.="MIME-Version: 1.0\n";
$header.="boundary=\"$boundary\"\r\n";
$header.="--$boundary \n";

//enviar e-mail
mail($to, $assunto, $corpo, $header)
?>
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

procure seguir a sintaxe do comando corretamente ... veja no manual

http://php.net/manual/pt_BR/function.fopen.php

$fp=fopen($anexo["tmp_name"],"rb");
$arquivo=fread($fp, filesize($anexo["tmp_name"]));
$arquivo=base64_encode($arquivo);
fclose($fp);

Aviso: fopen () [function.fopen]: Nome do arquivo não pode ser vazio em /home/a7695763/public_html/acao/s_envio_receitas.php na linha 15

Aviso: fread (): o argumento fornecido não é um recurso válido do stream resource em /home/a7695763/public_html/acao/s_envio_receitas.php na linha 16

Aviso: fclose (): o argumento fornecido não é um recurso válido do stream resource em /home/a7695763/public_html/acao/s_envio_receitas.php na linha 18

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Conforme referido na página do projecto no GitHub:

A Simple Example
<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}

You'll find plenty more to play with in the examples folder.

Espero que ajude.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...