联系PHP表单-不接收邮件(GMAIL)
我一直在努力让我的联系方式正常工作,但我的gmail文件夹中没有收到任何电子邮件(包括垃圾邮件和垃圾,也无法通过我的主机跟踪任何东西) 我一直在学习本教程: 我什么都试过了,需要一些认真的帮助联系PHP表单-不接收邮件(GMAIL),php,forms,twitter-bootstrap,email,contact,Php,Forms,Twitter Bootstrap,Email,Contact,我一直在努力让我的联系方式正常工作,但我的gmail文件夹中没有收到任何电子邮件(包括垃圾邮件和垃圾,也无法通过我的主机跟踪任何东西) 我一直在学习本教程: 我什么都试过了,需要一些认真的帮助 <?php $from = $_POST['email']; $sendTo = 'myemail@gmail.com'; $subject = 'New message from contact form'; $fields = array('name' => 'Name', 'surn
<?php
$from = $_POST['email'];
$sendTo = 'myemail@gmail.com';
$subject = 'New message from contact form';
$fields = array('name' => 'Name', 'surname' => 'Surname', 'email' => 'Email', 'phone' => 'Phone', 'message' => 'Message');
// array variable name => Text to appear in email
$okMessage = 'Contact form succesfully submitted. Thank you, I will get back to you soon!';
$errorMessage = 'There was an error while submitting the form. Please try again later';
// let's do the sending
try
{
$emailText = "You have new message from contact form\n=============================\n";
foreach ($_POST as $key => $value) {
if (isset($fields[$key])) {
$emailText .= "$fields[$key]: $value\n";
}
}
mail($sendTo, $subject, $emailText, "From: " . $from);
$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);
header('Content-Type: application/json');
echo $encoded;
}
else {
echo $responseArray['message'];
}
您没有邮件传递错误吗
尝试在以下位置从已知主机发送电子邮件:
$from = $_POST['email']; (like youremail@gmail.com)
Gmail检查DNS服务器中发送给电子邮件主机的DKIM(投递人)和SPF(签名人)记录。如果电子邮件主机没有DKIM记录,则可能不提供电子邮件
更多(gmail):
更多(如何安装和配置DKIM):
您没有邮件传递错误吗
尝试在以下位置从已知主机发送电子邮件:
$from = $_POST['email']; (like youremail@gmail.com)
Gmail检查DNS服务器中发送给电子邮件主机的DKIM(投递人)和SPF(签名人)记录。如果电子邮件主机没有DKIM记录,则可能不提供电子邮件
更多(gmail):
更多(如何安装和配置DKIM):
由于许多服务器不允许您以未注册用户的名义发送电子邮件,因此您应该在服务器上创建一封电子邮件,该电子邮件仅用于在用户填写联系人表单后向您发送他们写的电子邮件,然后您应该使用类似的类为您发送电子邮件
显示如何使用PHPMailer的简单示例如下:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.yourserver.here'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@userserver.here'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls';
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('user@userserver.here', 'Mailer');
$mail->addAddress('your@email.here', 'You'); // Add a recipient
$mail->addReplyTo('theuser@email.here', 'User that submitted form');
$mail->Subject = 'Subject here';
$mail->Body = 'Write here your message';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
由于许多服务器不允许您以未注册用户的名义发送电子邮件,因此您应该在服务器上创建一封电子邮件,该电子邮件仅用于在用户填写联系人表单后向您发送他们写的电子邮件,然后您应该使用类似的类为您发送电子邮件
显示如何使用PHPMailer的简单示例如下:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.yourserver.here'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@userserver.here'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls';
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('user@userserver.here', 'Mailer');
$mail->addAddress('your@email.here', 'You'); // Add a recipient
$mail->addReplyTo('theuser@email.here', 'User that submitted form');
$mail->Subject = 'Subject here';
$mail->Body = 'Write here your message';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
您是否收到任何错误消息?您的主机是否支持php mail()?提交时,据我所知,没有错误消息在本地主机上进行测试?请与我的主机联系,邮件需要进行身份验证?如何实现这一点您是否收到任何错误消息?您的主机是否支持php mail()?提交时,据我所知,没有错误消息在本地主机上进行测试?联系了我的主机,邮件需要进行身份验证?如何实现这一点我使用共享托管,显然所有邮件都需要经过身份验证?对于gmail,您必须在DNS TXT记录中验证电子邮件的域。我使用共享托管,显然所有邮件都需要经过身份验证?对于gmail,您必须在DNS TXT记录中验证电子邮件的域。创建电子邮件帐户后,上载phpmailer文件,并在上面的php代码中输入值,我将如何对其进行测试?您可以将此代码放入函数中,并在创建电子邮件帐户上载文件后按“提交”按钮调用该函数phpmailer文件,并在上面的php代码中输入值,我将如何进行测试?您可以将此代码放入函数中,并在按下submit按钮后调用该函数