无法实例化邮件功能

时间:2011-04-19 16:48:48

标签: php iis-7 phpmailer

在这个上撕掉我的头发。

我有一个运行IIS7.0和PHP 5.2.4的内部Win2008服务器。电子邮件服务器位于同一网络上的单独服务器上。

我可以使用php的邮件功能发送没有问题的电子邮件但是当我使用PHPMailerLite时,我收到消息“无法实例化邮件功能”。

我已经研究了很多并尝试了以下但仍然没有快乐。

  1. SetFrom - 将其更改为邮件服务器上的现有电子邮件地址。
  2. 在php.ini中验证了SMTP设置
  3. 直接测试php的邮件功能,电子邮件发送没问题。
  4. 如果发生损坏,请再次下载PHPMailer。
  5. 任何帮助都会受到赞赏.....

    艾伦

    只是添加,PHPMailer中包含的默认示例也不起作用,同样的错误。 这段代码正在为我开发其他测试服务器。

    $mail             = new PHPMailerLite();
    $mail->IsMail(); // telling the class to use PHP Mail to send email
    $mail->SetFrom("CareSys@localdomain.ie","CareSys");
    $mail->AddReplyTo("CareSys@localdomain.ie","CareSys");
    $mail->Subject    = "Weekly Planner";
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
    $mail->MsgHTML($body);
    $mail->AddAddress($email_add, $carer_name);
    $mail->AddAttachment('../../temp/carer_planner.pdf','carer_planner.pdf');      // attachment
    $mail->ConfirmReadingTo = 'info@localdomain.ie';
    if(!$mail->Send()) { $error_count=1; }
    
    if ($error_count<1) { echo 'Email Sent Successfully'; }
    

    如果我将收件人地址直接放在第582行的类文件而不是$ to vairable中,它就可以了。但是使用$ mail-&gt; AddAddress($ email_add,$ carer_name)即使我用接收地址替换$ email_add变量也不会。

3 个答案:

答案 0 :(得分:0)

该类正在尝试通过“sendmail”程序发送消息,该程序未使用php mail函数。确保您可以通过exec / system函数从PHP执行程序,并且可以从PHP运行sendmail程序。 exec / system / passthru / popen函数可能被服务器管理员禁用,或者您的php环境可能被监禁,根本无法访问sendmail程序。

答案 1 :(得分:0)

尝试使用 SMTP 发送电子邮件: -

$mail->IsSMTP();
$mail->Host = "smtp.example.com";    

// optional
// used only when SMTP requires authentication  
$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';

答案 2 :(得分:0)

这对我有用

$mail->SetFrom("CareSys@localdomain.ie","CareSys", 0); //notice the third parameter