【发布时间】:2014-11-27 18:10:10
【问题描述】:
我有一个使用 PHPMailer 制作的联系表格,用户可以在其中输入他们的数据。如果在电子邮件字段中,输入带有 gmail 的电子邮件,我没有收到这封电子邮件,甚至在垃圾邮件文件夹中也没有。我设置了ReplyTo,但都不起作用。我假设它可以被服务器阻止。
PHP:
require_once('../phpmailer/class.phpmailer.php');
/*datos personales*/
$name = strip_tags(trim($_POST['nombre']));
$name = str_replace(array("\r","\n"),array(" "," "),$name);
$provincia = $_POST['provincia'];
$localidad = strip_tags(trim($_POST['localidad']));
$email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
$prefijo = strip_tags(trim($_POST['prefijo']));
$sufijo = strip_tags(trim($_POST['telefono']));
$telefono = $prefijo.' - '.$sufijo;
if ( $marca == 'default' || $modelo == 'default' || $cilin == 'default' || $valvulas == 'default' || $anio == 'default' || $autonomia == 'default') {
http_response_code(400);
echo "Porfavor, corrobore que no falte ningún dato del vehículo.";
exit;
} else if ( $provincia == 'default' ) {
http_response_code(400);
echo "Porfavor, eliga una provincia.";
exit;
} else if ( $pago == 'default' ) {
http_response_code(400);
echo "Porfavor, eliga un método de pago.";
exit;
} else if (empty($name) || empty($localidad) || empty($prefijo) | empty($telefono)) {
http_response_code(400);
echo "Porfavor, complete los campos que estan en blanco.";
exit;
}
$recipient = "info@energygnc.com.ar";
$subject = "[Cotizador EnergyGNC] Solicitud de cotización por $name en energygnc.com.ar";
// Build the email content.
$email_content = "Solicitud de cotización realizada por: $name ($email)<br><br>";
$email_content .= "Datos del vehículo:<br>Marca: $marca $modelo modelo $anio<br>";
$email_content .= "Motor: $cilin - $valvulas<br>";
$email_content .= "Autonomia deseada: $autonomia<br><br>";
$email_content .= "Datos del cliente:<br>Nombre: $name<br>Email: $email<br>Telefono: $telefono<br>";
$email_content .= "Provincia: $provincia<br>Localidad: $localidad.<br>";
$email_content .= "Metodo de pago que me interesa: $pago";
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->SetFrom($email, $name);
$mail->ClearReplyTos();
$mail->AddReplyTo($email, $name);
$mail->AddAddress($recipient);
$mail->Subject = '[Cotizador EnergyGNC] Solicitud de cotización por '.$name.' en energygnc.com.ar';
$mail->Body = $email_content;
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Gracias por contactarse con nosotros.";
}
【问题讨论】:
-
您需要检查您的邮件服务器日志以了解发生了什么。
-
Nov 27 16:27:25 lupine postfix/smtp[18189]: A095F61009: to=<produccion@dev.criterionet.com>, relay=irv-shared-relay1.dreamhost.com[64.90.62.20]:25, delay=0.03, delays=0.01/0/0/0.01, dsn=5.7.1, status=bounced (host irv-shared-relay1.dreamhost.com[64.90.62.20] said: 550 5.7.1 Sender domain not allowed. Please read: http://dhurl.org/20b (in reply to end of DATA command))@Synchro -
@Synchro 显然 DreamHost 阻止了这一点。但是如果我设置
AddAddress(webmaster@domaindreamhost.com)和AddReplyTo(user@gmail.com)。答案是取AddAdress的值。