PHP未在远程服务器上发送自动电子邮件

时间:2014-11-23 10:27:07

标签: php

我编写了应该使用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;没有发送电子邮件,但在本地,每件事都像魅力。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

首先请转义GET和POST变量:

$escaped_string = mysqli_real_escape_string($connection, $string)

其次:对于电子邮件发送目的,使用PHPMailer一个免费存储库来发送电子邮件。您可以从github获取此信息:https://github.com/PHPMailer/PHPMailer您还可以找到发送电子邮件时需要遵循的流程。

我现在正在使用这个PHPMailer。它简单,强大,几乎没有失败。

相关问题