3

我已经这样做了几个小时,但无法让它工作,教程中的许多评论说它就像一个魅力,但我不能真正做到这一点。

我已经完成了这里的所有步骤http://blog.techwheels.net/send-email-from-localhost-wamp-server-using-sendmail/并阅读了所有其他用户遇到的问题的评论,并使用了回复的解决方案。

我在 apache 错误日志上看到的是这个

[Tue Nov 27 05:19:47 2012] [notice] Parent: Created child process 4120
[Tue Nov 27 05:19:47 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue Nov 27 05:19:48 2012] [notice] Child 4120: Child process is running
[Tue Nov 27 05:19:48 2012] [notice] Child 4120: Acquired the start mutex.
[Tue Nov 27 05:19:48 2012] [notice] Child 4120: Starting 64 worker threads.
[Tue Nov 27 05:19:48 2012] [notice] Child 4120: Starting thread to listen on port 80.
[Tue Nov 27 05:19:48 2012] [notice] Child 4120: Starting thread to listen on port 80.

我也在我的另一台计算机上尝试过它,它具有相同的错误日志。我已经禁用了我的防火墙,并且严格按照教程中的步骤进行操作。

4

1 回答 1

5

抱歉之前的回答。感谢大家提出改进我的答案的建议。这是我的答案: phpmailer 有一个名为 class.phpmailer.php 的文件。然后在function smtpmailer($to, $from, $from_name, $subject, $body)代码中如下:

global $error;
$mail = new PHPMailer(); 
$mail->IsSMTP(); 
$mail->SMTPDebug = 0; 
$mail->SMTPAuth = true;  
$mail->SMTPSecure = 'ssl'; 
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465; 
$mail->Username = 'gmailusername';  
$mail->Password = 'gmailpassword';           
$mail->SetFrom($from, $from_name);
$mail->Subject = $subject;
    $mail->IsHTML(True);
    $mail->Body=$body;
//$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send()) {
    $error = 'Mail error: '.$mail->ErrorInfo; 
    return false;
} else {
    $error = 'Message sent!';
    return true;
}

然后只需在您想要的任何位置调用该函数: smtpmailer($to, $from, $headers, $subject, $message);

哦,在此之前确保启用 php_openssl 扩展。

我希望我的这个答案是有帮助的。:)

于 2012-11-27T10:57:15.630 回答