我编写了应该使用PEAR发送自动电子邮件的代码。在我的本地MAC OS系统上,每件事都可以,但不能在基于Windows的远程服务器上运行。这是我的代码:
<?php require_once('../config/connection.php');
include_once("Mail.php");
$id=$_GET['id'];
if(isset($_POST['update-visa-status-btn'])){
$status=$_POST['status'];
mysqli_query($con,"UPDATE `visa` SET `status`='$status' WHERE `id`='$id'");
$visa=mysqli_query($con,"SELECT * FROM `visa` WHERE `id`='$id'");
$row_visa=mysqli_fetch_assoc($visa);
$user_id=$row_visa['userid'];
$user_info=mysqli_query($con,"SELECT * FROM `user` WHERE `id`='$user_id'");
$row_user_info=mysqli_fetch_assoc($user_info);
$From = "...";
$To="...";
$Subject = "...";
$Message = '
<html>
<head>
</head>
<body>
<!-- SOME HTML CODES THAT MAKES HTML EMAIL BODY -->
</body>
</html>';
$Host = "...";
$Username = "...";
$Password = "...";
$content_type="text/html";
$Headers = array ('From' => $From, 'To' => $To, 'Subject' => $Subject, 'content-type' => $content_type);
$SMTP = Mail::factory('smtp', array ('host' => $Host, 'auth' => true,
'username' => $Username, 'password' => $Password));
$mail = $SMTP->send($To, $Headers, $Message);
if (PEAR::isError($mail)){
echo($mail->getMessage());
} else {
echo("Email Message sent!");
}}
?>
在远程服务器上没有消息成功或错误未显示&amp;没有发送电子邮件,但在本地,每件事都像魅力。谢谢你的帮助。
答案 0 :(得分:0)
首先请转义GET和POST变量:
$escaped_string = mysqli_real_escape_string($connection, $string)
其次:对于电子邮件发送目的,使用PHPMailer一个免费存储库来发送电子邮件。您可以从github获取此信息:https://github.com/PHPMailer/PHPMailer您还可以找到发送电子邮件时需要遵循的流程。
我现在正在使用这个PHPMailer。它简单,强大,几乎没有失败。