通过PHPMailer发送的HTML电子邮件说它发送但是从未收到过

时间:2017-09-01 22:23:00

标签: php phpmailer html-email

我已经在这个问题上工作了一个星期了。我们有一个PHP程序,用户输入一个开始日期和结束日期,程序计算在截止日期前完成作业的每个步骤花费的时间。现在该程序只是创建一个包含步骤和日期的php网页,但我想让用户选择将这些结果通过电子邮件发送给自己。

我正在使用PHPMailer并最终设法创建一个html模板,并在用户提交电子邮件时将php变量传递给它。我知道这部分工作正常,因为我在提交后在页面上显示$ body消息,一切看起来都不错。问题是,现在我没有收到实际的电子邮件,即使我在页面上收到一条消息说它已被发送。他们不在我的垃圾邮件中,我已经尝试发送到我的工作电子邮件,雅虎,gmail等,但没有任何运气。

在本周的试验和错误中,我会收到电子邮件,但它会是空的,或者php变量不会通过。现在我不再接收电子邮件(尽管有成功的消息),但是打印$消息;完全显示所有包含的变量。

有人可以帮我吗?

HTML电子邮件模板:

<html><head><meta charset="utf-8"></head>
<body>
<b>Starting Assignment:</b> %date1%<br>
<b>Assignment Due:</b> %date2%<br>
<b>You have %days% days to finish this assignment.</b>
<br><br>
<h1>Step 1</h1>
<b>By %step1%:</b> <i>Get started </i><br>
<ul>
<li><a href='http://ahelpfulwebsite' target='_blank'>Understand the Assignment</a></li>
</ul>
</body></html>

我的梅勒:

<?php
require 'PHPMailerAutoload.php';


if (isset($_POST['send'])) {
$mail = new PHPMailer; 
//get user imput   
$email = $_POST['email'];
$date1 = $_POST['date1'];
$date2 = $_POST['date2'];
$days = $_POST['days'];
$time1 = $_POST['time1'];
$time2 = $_POST['time2'];
$time= abs($time1-$time2);
$days = (int)$days;

$format= "l M d, Y";
$stage1 = $time1;
$stage1 += ($time * .03);   
$step1 = date($format, $stage1);

$message = file_get_contents('textonly.html'); 
$message = str_replace('%date1%', $date1, $message); 
$message = str_replace('%date2%', $date2, $message); 
$message = str_replace('%days%', $days, $message);
$message = str_replace('%step1%', $step1, $message); 

$mail->setFrom('email@myemail.com');
$mail->addReplyTo('email@myemail.com');
$mail->addAddress($email);
$mail->Subject  = 'Assignment Checklist';
$mail->Body = $message;
$mail->isHTML(true);
$mail->CharSet='utf-8';
$mail->WordWrap = 70;  
}

if(!$mail->send()) {
  print 'Mailer error: ' . $mail->ErrorInfo;
} else {
 print 'Your email has been sent.';
}

print "<br><br>";
print $message;
?>

0 个答案:

没有答案