iT邦幫忙

0

PHP資料儲存後自動寄信

php
jillla 2010-06-28 00:40:0610648 瀏覽

各位前輩好,我是php初學者,由於公司需要,我用php+myqsql自已做了一個有留言板的網站,網站已完成基本功能都正常。(公司用iis)

我想加入一個功能,當留言者留言後,資料儲存後會再寄發email給我。
以便我們可以在很短的時間回覆給使留言者。

我上網找了資料,陸續做了測試,但一直沒有測成功,錯誤訊息看不是很出來,
不曉得是否有前輩可幫幫忙^^先感謝大家。

我的php.ini修改成:
[mail function]
; For Win32 only.
SMTP = msa.hinet.net
smtp_port = 25

; For Win32 only.
sendmail_from = test@ms68.hinet.net

然後我在插入記錄的語法後面,加入下面的程式…
但可以留言,但沒有收到信~~~
我反覆試過很多種寫法,都是可以留言,但沒有收到email,也沒有錯誤訊息,
有點奇怪~~~
我找到很多文章,都是在介紹mail函數的使用,
不過我不曉得如何先將資料儲存後再使用mail函數,
所以很多資料沒有看懂。
再次感謝各位前輩。謝謝。

程式碼:
http://www.bag.url.tw/test.txt

12
何必問
iT邦好手 1 級 ‧ 2010-06-28 11:49:17
最佳解答

http://sourceforge.net/projects/phpmailer/
利用phpmailer工具
用身份驗證方式寄信吧
relay的寄信遲早會被spam擋掉

jillla iT邦新手 5 級 ‧ 2010-06-28 18:55:28 檢舉

DEAR hojc前輩您好:

請問若是用phpmailer的話,我是用dreamweaver做的php網站,請問我要如何使用它才能讓他在插入記錄後,執行mail的功能呢^^
非常感謝您。(這個問題感覺非常白癡,不過我卻卡在這個白癡的問題囧…再次感謝您。)

何必問 iT邦好手 1 級 ‧ 2010-06-28 22:27:08 檢舉

首先不敢當前輩之稱
泛泛網友中僅只是被知識分享受益者

關於phpmailer google搜尋眾多資料 不及詳述敬請見諒!
用法大約可以解釋
將phpmailer的程式放置在自己程式目錄之中
利用php "include" or "require_once"的語法將class.phpmailer.php 程式帶入自己將執行之程式

ex.

<pre class="c" name="code">
<?
include("./phpmailer/class.phpmailer.php"); //匯入PHPMailer類別 

if($input <> ''){
$sql = "INSERT INTO some_one_table (input) VALUES ('$input')";
$query = mssql_query($sql, mssql_connect("IP","帳號","密碼") );

$mail= new PHPMailer(); //建立新物件 
$mail->IsSMTP(); //設定使用SMTP方式寄信 
$mail->SMTPAuth = true; //設定SMTP需要驗證 
$mail->Host = "smtp.abc.com.tw"; //設定SMTP主機 
$mail->Port = 25; //設定SMTP埠位,預設為25埠。 
$mail->CharSet = "big5"; //設定郵件編碼 
                    
$mail->Username = "some_one@fmp.com.tw"; //設定驗證帳號 
$mail->Password = "some_password"; //設定驗證密碼 
}
?>
....
<form action="'.$PHP_SELF.'" method="POST" name="form1" >
<input type=input name=input size=10>
<input type=submit name=ok value=寫入送出>
</form>

以上程式大抵是如此
因phpmailer有分php版本之別 這點請使用時注意版本

希望這樣說明有所幫助

10
shunyuan
iT邦研究生 1 級 ‧ 2010-06-28 01:21:56

你有先看過 PHP 的 FAQ 文件嗎?

jillla iT邦新手 5 級 ‧ 2010-06-28 18:56:19 檢舉

dear shunyuan前輩您好:

我會再努力的,感謝您的回應哦^^

12
fillano
iT邦超人 1 級 ‧ 2010-06-28 09:46:21

...是什麼東西阿?這應該不會在合法的email地址裡面出現吧?把他拿掉吧。另外,$config應該不是需要的東西,這個參數可以省略。(在UNIX環境下,用一些MTA例如sendmail來送信時,可以用這個傳參數,這個在windows底下的php應該不會用到)

有看過mail函數的說明嗎:
http://tw2.php.net/manual/en/function.mail.php

fillano iT邦超人 1 級 ‧ 2010-06-28 09:47:36 檢舉

疑?被過濾掉了,上面的"..."應該是:

<pre class="c" name="code"><a href="mailto:...">...</a>
fillano iT邦超人 1 級 ‧ 2010-06-28 09:49:26 檢舉

哇哈哈,發現隱藏的bbcode...
好吧,我用全形,其實應該是中括號:
〔mail〕〔/mail〕

jillla iT邦新手 5 級 ‧ 2010-06-28 19:01:23 檢舉

dear fillano前輩您好:
相當感謝您的解說及回應,我有看過這個函數的說明,不過因為我不是很懂php語法,我是用dreamweaver做的網站,因此很多不是很懂的地方。
雖然看不是很懂您寫的意思,不過非常感激您的不吝指導^^我會繼續努力測試的。感謝您。

6
silly
iT邦好手 2 級 ‧ 2010-06-28 11:20:18

不清楚你的test.txt是不是一個php檔,如是的話,那你的code裡有一段是重複的(38~57行),在56行時就會重導到另一頁面,所以不會執行到下面有關mail(73~78行)的敘述了。

fillano iT邦超人 1 級 ‧ 2010-06-28 11:59:14 檢舉

看起來他是要改38~57行的程式,但是忘了把舊的刪掉...

我要發表回答

立即登入回答