我正在处理一个php项目,我到达了应该向用户发送邮件的部分。我决定使用PHP函数mail()
。任何时候我尝试下面的代码,都是不成功的:
// Sending the confirmation mail
$confirmation_link = "http://localhost/africafashion_newversion/confirm.php?id=$user_id&token=$token";
$to = $_POST['email'];
$subject = "Confirmation de votre compte";
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<div>
<table cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;width:100%!important;height:100%!important">
<tbody>
<tr>
<td align="center" style="padding-bottom:20px;border-collapse:collapse">
<img src="logo.png" alt="Stack Exchange" style="width:180px;min-height:43px; padding:30px 0; text-align: center;outline:none;" />
<div style="max-width:400px; margin: 0 auto; border:1px solid #eee;border-radius:3px;background:#ffffff; padding: 25px 10px;">
<p>You are almost done!</p>
<p><a href="'.$confirmation_link.'" style="color:#15c; text-decoration: none;">Click here to complete your registration</a></p>
</div>
<div style="font-size:95%; color:#999;font-family: Helvetica,Arial,sans-serif">
<p>
Questions? Comments? Let us know on our <a href="#" style="color:#15c; text-decoration: none;">feedback site</a>.
</p>
<p>
Stack Exchange Inc. 110 William Street, 28th floor, NY NY 10038
</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
';
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "'r'n";
$headers .= "Content-type:text/html;charset=UTF-8" . "'r'n";
// More headers
$headers .= 'From: <no-reply@example.com>' . "'r'n";
$headers .= 'Cc: myboss@example.com' . "'r'n";
if (mail($to,$subject,$message,$headers)) {
$_SESSION['flash']['success'] = 'A mail has been successfully sent.';
header('Location: login.php');
exit();
}else{
$_SESSION['flash']['danger'] = "Confirmation mail not sent";
$req = $pdo->prepare('DELETE FROM users WHERE UserID = ?');
$req->execute([$user_id]);
header('Location: register.php');
exit();
}
}
请帮我解决这个问题。
不要使用SendMail,可以使用SwiftMailer。它很简单,而且你可以在收件箱中发送电子邮件(而不是垃圾邮件…!!!)。所以它会帮助你并节省你的时间。
我的Send.php 代码
include_once "inc/swift_required.php";
$subject = 'Hello from Jeet Patel, PHP!'; //this will Subject
$from = array('jeet@mydomain.com' =>'mydomain.com'); //you can use variable
$text = "This is TEXT PART";
$html = "<em>This IS <strong>HTML</strong></em>";
$transport = Swift_SmtpTransport::newInstance('abc.xyz.com', 465, 'ssl');
$transport->setUsername('MYUSERNAME@MYDOMAIN.COM');
$transport->setPassword('*********');
$swift = Swift_Mailer::newInstance($transport);
$to = array($row['email'] => $row['cname']);
$message = new Swift_Message($subject);
$message->setFrom($from);
$message->setBody($html, 'text/html');
$message->setTo($to);
$message->addPart($text, 'text/plain');
if ($swift->send($message, $failures))
{
echo "Send successfulllyy";
} else {
print_r($failures);
}