邮件不会被php发送

时间:2015-05-29 06:19:30

标签: php email sendmail

我有一个简单的脚本可以在我的任何其他服务器上正常工作,但在我需要的那个服务器上,它没有......

    <?php
$name = $_POST['Name'];
$email = $_POST['Email'];
$phone = $_POST['Phone'];
$message = $_POST['Message'];

$formcontent="Name: $name \n Email: $email \n Phone No: $phone \n Services: $services \n Message: $message";
$recipient = "gaurav.m@momentsworld.com";
$subject = "Client Details";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!" . " -" . "<a href='../contact.html' style='text-decoration:none;color:#ff0099;'>Return Home</a>";
?>

当我尝试通过表单提交联系人详细信息时,会出现错误

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\Inetpub\vhosts\momentsworld.com\httpdocs\script\quick_query.php on line 17

虽然相同的脚本在其他服务器上运行良好...但是Plz帮助

5 个答案:

答案 0 :(得分:0)

试试这个:

Setup.sh

即使它在您的服务器中不起作用,您也可以尝试使用sendmail或Swiftmailer。请查看以下链接:

http://swiftmailer.org/docs/sending.html

答案 1 :(得分:0)

您的服务器邮件发送设置未配置。检查服务器邮件发送设置并启用服务器的所有电子邮件发送设置。另一种方法是使用smtp发送邮件。示例代码如下所示:

  1. 您的配置阵列设置。

    $config = Array(
      'protocol' => 'smtp',
      'smtp_host' => 'ssl://smtp.googlemail.com',
      'smtp_port' => 465,
      'smtp_timeout'=>'30',
      'smtp_user' => 'your_gmail_account@gmail.com',
      'smtp_pass' => 'your gmail password',
      'mailtype'  => 'html',
      'charset'   => 'iso-8859-1',
      '_smtp_auth' => TRUE,
      'newline' => "\r\n"
    );
    
  2. 初始化该配置设置,然后使用邮件发送代码。

答案 2 :(得分:0)

似乎在此服务器中未配置sendmail。请让IT人员安装&amp;为你配置它。除非邮件服务器没有运行,否则您将无法发送电子邮件。此外,使用gmail或其他作为SMTP提供程序将用于测试目的。由于电子邮件数量很大,我猜他们会将您的IP列入黑名单。

答案 3 :(得分:0)

我也有同样的问题。所以我切换到了PHPMailer库。你可以用它。即使发送图像也会有所帮助。您可以在此处找到PHPMailer文档和示例代码。

http://phpmailer.worxware.com/index.php?pg=examples

答案 4 :(得分:0)

如果这是Linux服务器,我们之前安装了mailx,然后允许使用PHP mail()标记。

此外,PHPMailer(如上所述)是另一个很好的建议,利用SMTP到远程服务器。