如何使用PHP发送批处理文件发送电子邮件?

时间:2011-12-09 10:41:26

标签: php ssl smtp gmail pear

我在Stacked overflow和其他论坛上发现了很多关于使用批处理文件发送电子邮件的帖子,如:Send email using the GMail SMTP server from a PHP page

但似乎没有一个对我有用......我已经能够安排任务..使用Windows任务调度程序并编写批处理文件:

@echo 启动C:\ wamp \ bin \ php \ php5.3.1 \ php.exe -f C:\ wamp \ www \ email.php

PHP文件显示如下的简单脚本:

<?php
require_once "Mail.php";

$from = "Prashant Yahoo <prashant.balan@yahoo.co.in>";
$to = "Prashant Hotmail <prashant.balan@hotmail.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "ssl:\\smtp.gmail.com";
$port = "465";
$username = "<user@gmail.com>"; or user.gmail.com as stated in the above SO link
$password = "password";

$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
 'port' => $port,
 'auth' => true,
 'username' => $username,
 'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

我已经在我的本地主机上安装了PEAR以及我需要的一切。我甚至下载了最新的OpenSSL并替换了必要的文件,并按照此处的指示设置了环境变量: http://raibledesigns.com/wiki/Wiki.jsp?page=ApacheSSL

我收到以下错误:

无法连接到ssl://smtp.gmail.com:465 [SMTP:无法连接套接字:无法找到套接字传输“ssl” -  你配置PHP时忘了启用它吗? (代码:-1,回复:)]

如何解决这个问题?请帮忙..

ANSWER 在C:\ PHP中打开您的PHP.INI文件或在我的情况下打开C:\ WAMP \ BIN \ PHP \ PHP 5.3.8并删除前面的分号: extension = php_openssl.dll和extension = php_sockets.dll 希望这会帮助别人! ~~~~~~特别感谢Tomas ~~~~~~~

1 个答案:

答案 0 :(得分:2)

ANSWER

在C:\ PHP或我的情况下打开您的PHP.INI文件C:\ WAMP \ BIN \ PHP \ PHP 5.3.8并删除前面的分号:extension = php_openssl.dll和extension = php_sockets.dll希望这会帮助别人! ~~~~~~特别感谢Tomas ~~~~~~~