lampp中的mail()不起作用

时间:2011-07-28 15:11:07

标签: apache email smtp php

我想用PHP发送一个简单的邮件脚本。它不起作用,我在邮件日志或错误日志中没有错误。

这是我的php.ini配置

SMTP = relais.videotron.ca
smtp_port = 25
sendmail_from = xxxx@xxxx.com (Of cours it's my ISP email there :D)
sendmail_path = /usr/sbin/sendmail -i -t

和我的简单邮件()测试

mail("xxxx@xxxx.com","test","test");

没什么可行的。它可能是什么?

2 个答案:

答案 0 :(得分:2)

内置的PHP mail命令不允许您对SMTP服务器进行身份验证。您的ISP SMTP服务器需要身份验证,因此拒绝连接。

info provided by your ISP确认了这一点;

  

可以使用明文从外部网络访问SMTP服务器   使用代码“VL”或邮件别名进行身份验证示例:   customer@videotron.ca

您的选项要么使用允许匿名连接的SMTP服务器,要么(如Eamorr所说)使用邮件程序类。

答案 1 :(得分:0)

我使用SwiftMailer:

require_once('../lib/swiftMailer/lib/swift_required.php');
...
function sendEmail(){
  //Sendmail
  $transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs');

  //Create the Mailer using your created Transport
  $mailer = Swift_Mailer::newInstance($transport);

  $body="Dear $fname,\n\nYour job application was successful. \n\nYours,\n\nEamorr\n\n\n\n\n\n\n";


  //Create a message
  $message = Swift_Message::newInstance('Subject goes here')
    ->setFrom(array($email => "no-reply@yourdomain.com"))
    ->setTo(array($email => "$fname $lname"))
    ->setBody($body);

  //Send the message
  $result = $mailer->send($message);
}

您可以轻松发送纯文本和HTML电子邮件。