WAMP的hinet的郵件寄出設定

想要測試WAMP的郵件寄出功能,本來想要用gmail的,沒想到一直不成功,還是回頭用Hinet的好了,比較順

我是使用msa.hinet.net,如果郵件伺服器不同,請自行尋找

有兩個地方的php.ini要改 C:\wamp\php\php.ini 和 C:\wamp\apache2\bin\php.ini

打開後找到以下的[mail function]程式碼,修改如下,兩個都要改

[mail function]

; For Win32 only.
SMTP = msa.hinet.net
smtp_port = 25
auth_username =你自己郵件的帳號,就是@前面那一串英文數字
auth_password =你自己的密碼

; For Win32 only.
sendmail_from = 你自己的帳號@msa.hinet.net

 

如果有人試成功gmail設定的,歡迎分享

後來自己發現了設定gmail的方法,原來不用在php.ini弄,直接在程式裏設定就行了

<?php
  require_once("Mail.php");   // 引用 PEAR::Mail

  // 檢查收件人及主旨均非空字串, 才會進行以下處理
  //其他設定是參照 http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page
  if(!empty($_POST['to']) && !empty($_POST['subject'])){  
    $params = array('host' => 'ssl://smtp.gmail.com',
                    'port' => '465',
                    'auth' => true,
                    'username' => '你的gmail的帳號@gmail.com',       // SMTP 帳號
                    'password' => '你的gmail密碼');   // SMTP 密碼
    $mailer = &Mail::factory('smtp',$params);  // 建立使用SMTP的物件                            
 
    mb_internal_encoding('utf-8');    // 指定編碼格式
    $headers = array( // 設定檔頭資訊
      // 用 mb_encode_mimeheader() 將寄件人中的字串
      // 轉成符合 SMTP 通訊協定要求的格式
      'From'         => "from.gmail.com",
      'To'           => $_POST['to'],
      // 用 mb_encode_mimeheader() 將郵件標題
      // 轉成符合 SMTP 通訊協定要求的格式
      'Subject'      => mb_encode_mimeheader($_POST['subject']),  
      'Content-Type' => 'text/plain; charset="UTF-8"',
      'Content-Transfer-Encoding' => '8bit');
 
    // 呼叫 send() 方法寄出郵件, 並取得其傳回值
    $result=$mailer->send($_POST['to'], $headers, $_POST['body']);
 
    // 由 send() 傳回值判斷結果並顯示對應訊息
    // 如果寄件失敗, $result 將會是 PEAR_:Error 的物件
    // 如果寄件成功, 則傳回值為 true
    if(PEAR::isError($result))
      // 呼叫 PEAR_Error 的 getMessage() 方法取得錯誤訊息字串
      echo '<p>寄送失敗:' . $result->getMessage() . '</p>';
    else
      echo '<p>郵件已成功寄出!</p>';

    echo '</body></html>';
    exit();
  }
?>
<form method="post">
  <div>收件人:<input type="text" name="to" size="50"/></div>
  <br />
  <div>主 旨:<input type="text" name="subject" size="50"/></div>
  <br />
  <div>信件內容:<br />
    <textarea rows="10" cols="72" name="body"></textarea>
  </div>
  <input type="submit" value="立即寄出"/>
  <input type="reset" value="清除重寫"/>
</form>

 

 

----------------------------------------------------------------------------------------

WAMP 5 在windows xp下安裝xdebug

主要是參考這一篇http://mitulmpatel.wordpress.com/2009/11/02/how-to-install-xdebug-on-wamp/

1.去http://www.xdebug.org/下載"php_xdebug-2.1.2-5.2-vc6.dll"

我的電腦不支援MS VC9,所以用MS VC6,而且似乎只能用TS版本。主要也是參考這裏的解釋http://lzhxiaoyu.blog.51cto.com/10707/238562

2.把下載的php_xdebug-2.1.2-5.2-vc6.dll放到 c:\wamp\php\ext

3.同時修改c:\wamp\php\php.ini和c:\wamp\Apache2\bin\php.ini。兩個都要改。在這兩個檔案內,加入以下數值

[xdebug]
zend_extension_ts="c:/wamp/php/ext/php_xdebug-2.1.2-5.2-vc6.dll"
xdebug.profiler_output_dir = "c:/wamp/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
xdebug.profiler_enable = 0
xdebug.profiler_append=0
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=xdebug
xdebug.remote_log="c:/wamp/tmp/xdebug/xdebug_remot.log"
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0

4.新增 ‘xdebug’資料夾到 ‘c:\wamp\tmp’裏面

5.重新啟動所有服務 Restart ALL Service

如果成功,在首頁點選 phpinfo() ,裏面的 Zend Scripting Language Engine 可以找到 with Xdebug v2.1.2 的字串

 

 

 

----------------------------------------------------------------------------------------

修正 Warning: Cannot add header information - headers already sent by...

以下內容是別人(Neo)寫的,我只是貼上來做一個記錄而已,所以不是我寫的:

寫過 PHP 的人一定看過這個訊息..

Warning: Cannot add header information - headers already sent by ..


有空再解釋原理及發生的原因,一般可以用 PHP 的 ob 系列函數來處理,但是比較簡單的方式也可以用打開 PHP Output buffer 的方式來解決。

打開的方法:

方法1.在 php.ini 裡面找到 output_buffering ,並改為1。

方法2.由於虛擬主機不可能改 php.ini ,因此只要在自己網站的根目錄新增一個 .htaccess 的檔案,並且加入下面這一行:

    PHP_FLAG output_buffering On

這個方法跟 apache 的 .htaccess AllowOverride 權限有關,所以如果用 phpinfo(); 看還是沒有的話,就要先在 .htaccess 裡面改為:

    AllowOverride Options
    PHP_FLAG output_buffering On



    AllowOverride All
    PHP_FLAG output_buffering On

這樣看看有沒有 HTTP 500 Error 的錯誤訊息,如果有的話,就可能要請主機商打開 .htaccess AllowOverride 了。

 

 

 

 

 

----------------------------------------------------------------------------------------

phpMyAdmin出現#1045 - Access denied for user 'root'@'localhost' (using password: YES)

我用的是 phpMyAdmin 版本 2.10.1 。可能新版會更新這個bug吧.....但如果你也碰到相同問題,以下是我的經驗

如果在phpMyAdmin的權限更改root密碼,再重新開phpMyAdmin網頁時,會出現以下訊息

#1045 - Access denied for user 'root'@'localhost' (using password: YES)

解決方法如下:

(1)到wamp/phpmyadmin的資料夾底下,找一個 config.inc.php 檔案,用文字編輯器打開來

(2)在config.inc.php 檔案裏,搜尋 $cfg['Servers'][$i]['password'] 

(3)找到後,後面那個=''之後的就是你的密碼了,但很明顯發現它沒有隨著權限設定而更新,所以,我們用手寫的方式輸入新密碼(和權限更新密碼裏的一樣的密碼),改好後儲存檔案

(4)重新啟動WAMP (Restart All Service)

(5)清除瀏覽器的快取和歷史記錄,主要目的是把session清掉 (所以如果有選擇的話,cookie可以不用清)

(6)再登入看看,就成功了!

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Chung 的頭像
    Chung

    SAP與其他程式學習筆記

    Chung 發表在 痞客邦 留言(0) 人氣()