【问题标题】:Send imagem to Email - PHP将图像发送到电子邮件 - PHP
【发布时间】:2019-09-28 20:36:44
【问题描述】:

我正在开发一个执行发送邮件的系统,但是当您通过字段输入文件发送图像时,它最终不会返回邮箱中的任何内容。 有人可以帮我吗?

我在几个地方搜索过,但都不成功,当发送电子邮件时,图像的文件部分是空的。

HTML

<!DOCTYPE html>
<html lang="pt-br">
<meta name="viewport" content="width:500", initial-scale=1>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Enviar Mensagens</title>
<link rel="stylesheet" href="css/style.css" type="text/css"/>
</head>
<body>

<!--FORMULARIO-->
<div id="formulario">
<form method="POST" action="enviando.php"   enctype="multipart/form-data">
<center><img src="../imagem/logo_XXX.png" widht="80" height="60"/></center>
<legend>ENVIAR MENSAGEM</legend>
<span>Nome</span>
<input type="text" name="nome" placeholder="Nome:" required/><br>
<span>Email</span>
<input type="email" name="email1" placeholder="Email:" required/><br>

<span>Assunto</span>
<select name="assunto" required>
<option value="Aviso">Aviso</option>
<option value="Dúvida">Dúvida</option>
<option value="Urgente">Urgente</option>
<option value="Boleto">Boleto</option>
<option value="Pagamento Atrasado">Pagamento Atrasado</option>
<option value="Parabéns">Parabéns</option>  
<option value="Reclamação">Reclamação</option>  
</select><br>

<span>Arquivo</span>
<input type="file" name="arquivo"><br/><br/>
<span>Mensagem</span>
<textarea name="texto" cols="30" rows="5"></textarea>
<input type="hidden" name="acao" value="Enviar">
<input type="submit" value="enviar" class="btn"/>
</form>
</div>

<span><center>
<font color="#fff">&copy; <?php echo date('Y');?>xxx Todos os direitos reservados</font>
</center></span>

<div id="footer">
<div style="clear:both;">
</div>
</div>
</body>
</html>

PHP

<?php
session_start();
include_once("conexao/config.php");


$ti;
$ti= $_SESSION['email']; 


$nome=$_POST['nome'];
$email=$_POST['email1'];
$assunto=$_POST['assunto'];
$arquivo= $uploaddir . basename($_FILES['arquivo']['arquivo']);
$mensagem=$_POST['texto'];

 /* HERE RETURN VOID IN FILE IMAGE */
$to="contato@silvaplataformas.com.br";
$subject="$assunto";
$mensagem="
<strong>Nome:</strong>
$nome<br><br>
<strong>Email:</strong>
$email<br><br>
<strong>Assunto:</strong> 
$assunto<br><br>
<strong>Arquivo:</strong> 
$arquivo<br><br>
<strong>Mensagem:</strong>
$mensagem<br><br>";

$header="MIME-version:1.0\n";
$header.="Content-type: text/html; charset=iso-8859-1\n";
$header.="From: $email\n";

mail($to, $subject, $mensagem, $header);
if(mail==true){
header("Location: sucesso.php");
}else{
header("Location: erro.php");
} 
?>  

谁能帮帮我?

【问题讨论】:

  • basename($_FILES['arquivo']['arquivo']) 不正确。您在widht 中也有错字。这个词拼写为“宽度”。
  • 感谢 Func 四十,正确的申请方式是什么?

标签: php html file email session


【解决方案1】:

而不是

mail($to, $subject, $mensagem, $header);
if(mail==true){
header("Location: sucesso.php");
}else{
header("Location: erro.php");

使用

$location = mail($to, $subject, $mensagem, $header) ? "sucesso.php" : "erro.php";
header("location: " . $location);

【讨论】:

  • 感谢您的提示。我怎样才能上传图片?
  • 在您的原始代码中,您没有检查 mail() 函数的返回值。我使用三元运算符?选择适当的重定向页面,然后将其放入 header() 进行重定向。就这样。为什么我得了负分!?谁知道。对于文件上传,网上有很多例子。您必须通过 POST enctype="multipart/form-data" 发送并使用 $_FILES 变量才能使用它。
猜你喜欢
  • 2013-07-18
  • 2016-07-23
  • 1970-01-01
  • 2015-10-10
  • 1970-01-01
  • 2011-09-16
  • 2016-04-13
  • 1970-01-01
相关资源
最近更新 更多