通过php发送电子邮件不起作用
我有一段代码无法工作我不明白为什么,我正在尝试将信息发送到数据库并发送到电子邮件地址,它正在将其保存到数据库中,但不会发送到电子邮件,即使它与您成功发送的电子邮件相呼应。谢谢你的帮助通过php发送电子邮件不起作用,php,email,html-email,Php,Email,Html Email,我有一段代码无法工作我不明白为什么,我正在尝试将信息发送到数据库并发送到电子邮件地址,它正在将其保存到数据库中,但不会发送到电子邮件,即使它与您成功发送的电子邮件相呼应。谢谢你的帮助 <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } $to = "edonaghy--@hotmail.co.u
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$to = "edonaghy--@hotmail.co.uk";
$subject = "Dress fitting";
$time = $_REQUEST['time'];
$date = $_REQUEST['date'];
$headers = "From: $email";
$sent = mail($to, $date, $headers);
if($sent)
{
print "Your mail was sent successfully";
}
else
{
print "We encountered an error sending your mail";
}
mysql_select_db("lr", $con);
mail("edonaghy--@hotmail.co.uk", $time, $date, $place, $comments);
$sql="INSERT INTO fitting (time, date, place, comments) VALUES ('$_POST[time]','$_POST[date]','$_POST[place]','$_POST[comments]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Information has been sent!";
?>
你用错了邮件
它的用途如下:
mail(to,subject,message,headers,parameters)
所以你的答案是:
$to = "email@hotmail.co.uk";
$subject = "Dress fitting";
$headers = "From: email@hotmail.co.uk";
$message = "Time:".$_REQUEST['time']."\r\n";
$message .= "Date:".$_REQUEST['date']."\r\n";
mail($to,$subject,$message,$headers);
这是假设您的$\u请求
正在工作
您的第二个mail()
正在使用您甚至还没有设置的变量($comments
,$place
)等
首先设置它们:
$place = $_POST['place'];
$comments = $_POST['comments'];
首先,如果您的本地主机配置不正确,它将不会发送您的电子邮件,因此我建议您在服务器上进行测试(如果有)
有一些库可以帮助您编写更好的代码,如
例如:
require'class.simple_mail.php';
$mailer=新的SimpleEmail();
$time=$_请求['time'];
$date=$_请求['date'];
$message=“我的邮件日期:“$date.”“$time.””;
$send=$mailer->setTo('edonaghy--@hotmail.co.uk','Your Email')
->setSubject('测试消息')
->setFrom('否-reply@domain.com“,”Domain.com“)
->addMailHeader('回复','否-reply@domain.com“,”Domain.com“)
->addMailHeader('Cc','bill@example.com“,”比尔·盖茨“)
->addGenericHeader('Content-Type','text/html;charset=“utf-8”'))
->setMessage($message)
->自动换行(100)
->send();
回音($send)?'已成功发送电子邮件':'无法发送电子邮件';
您确定它没有被发送吗?我的意思是,它可能会在很多地方失败:被SMTP服务器阻止,被目标服务器阻止,被过滤为垃圾邮件。例如,“代表”发送电子邮件(从您不拥有的域强制发送“发件人”电子邮件)是一个非常常见的排除问题。您在这两个地方使用mail()的方式不同。在第一个示例中,您将发送标题作为正文。在第二个示例中,您将发送$place作为标题,但在您给出的示例中,这一点尚未定义。$comments和大概$time和$date也取决于$\u请求变量。你看过邮件手册了吗?我想到的第一个明显的问题是,你是在localhost
上使用这个吗?它可能没有发送,因为他没有使用mail()
正确。让我们让他正确使用它,然后问问题。是的,我在本地主机上
require 'class.simple_mail.php';
$mailer = new SimpleMail();
$time = $_REQUEST['time'];
$date = $_REQUEST['date'];
$message = "<strong>My message on date:".$date." ".$time."</strong>";
$send = $mailer->setTo('edonaghy--@hotmail.co.uk', 'Your Email')
->setSubject('Test Message')
->setFrom('no-reply@domain.com', 'Domain.com')
->addMailHeader('Reply-To', 'no-reply@domain.com', 'Domain.com')
->addMailHeader('Cc', 'bill@example.com', 'Bill Gates')
->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
->setMessage($message)
->setWrap(100)
->send();
echo ($send) ? 'Email sent successfully' : 'Could not send email';