2011-12-09 70 views
0

我發現上堆積溢出關於使用批處理文件像發送電子郵件衆多職位和其他論壇:Send email using the GMail SMTP server from a PHP page如何讓批處理文件使用PHP發送電子郵件?

但沒有一個似乎爲我工作。我已經能夠安排任務..使用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 <[email protected]>"; 
$to = "Prashant Hotmail <[email protected]>"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 

$host = "ssl:\\smtp.gmail.com"; 
$port = "465"; 
$username = "<[email protected]>"; 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 OPEN你的php.ini文件中的C:\ PHP或在我的情況下,C:\ WAMP \ BIN \ PHP \ PHP 5.3.8並刪除分號的提前: 擴展= p​​hp_openssl.dll和擴展名= php_sockets.dll 希望這會幫助別人! ~~~~~~特別感謝托馬斯~~~~~~~

+0

你確定你已經啓用了openssl?我不是指安裝,但啓用時,應顯示在你的phpinfo頁 –

+0

是:它讀取如下: OpenSSL的支持\t啓用 OpenSSL庫版本\t OpenSSL的0.9.8r 2011-2-8 OpenSSL的頭版本\t的OpenSSL 0.9.8r 2011年2月8日 – ppant

+0

托馬斯,當我使用我的瀏覽器執行PHP腳本..它工作正常..但是,當我使用批處理文件運行相同,它顯示我上面所述的錯誤 – ppant

回答

2

ANSWER

OPEN你的php.ini文件中的C:\ PHP或在我的情況下,C:\ WAMP \ BIN \ PHP \ PHP 5.3.8並刪除分號的前面:extension = php_openssl.dll和extension = php_sockets.dll希望這能幫助別人! ~~~~~~特別感謝Tomas ~~~~~~~