台灣最大程式設計社群網站
線上人數
1202
 
會員總數:243449
討論主題:188175
歡迎您免費加入會員
討論區列表 >> PHP >> 請問利用php mail 要怎麼發送多人郵件
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問利用php mail 要怎麼發送多人郵件
價值 : 100 QP  點閱數:236 回應數:12

樓主

咖啡小子
初學者
320 25
596 40
發送站內信





我想使用check勾選的方式在發送同個信件多個收件人
以下是我目前使用的方法 但只能收到最後一個email值




請求大大幫忙

搜尋相關Tags的文章: [ email ] , [ 信件 ] , [ 信箱 ] , [ php ] , [ mail ] , [ 多人信件 ] , [ check勾選 ] , [ ] ,
本篇文章發表於2018-09-23 16:28
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
可以這樣子做喔?
跟我之前看的不大一樣,
估計是在
$header .= "To: $to_name<$to_email>\r\n";
這一行多加幾個e-mail,
可能用逗號分隔也可能有其他方式,
這你可能要試試看了...
本篇文章回覆於2018-09-23 17:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

彩虹
檢舉此回應
不要用 php mail 寄信,基本上都會被擋掉或變成垃圾信

請你試著google:「PHP phpmailer Gmail寄信」,網路上有很多範例
先完成phpmailer寄信的功能後
我再來跟你說怎麼搭配 <input type="checkbox"> 勾選後,要如何一次寄給多個收件者
本篇文章回覆於2018-09-23 18:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
使用 input checkbox的模式要傳送多重參數。是需要命名為 xxxxx[]的。(後面要有中括號)
要不然form只會發送最後一個參數值。

你的問題非mail的設定問題。只是表單發送的問題。

題外話:要注意一下發信頻率的問題。
本篇文章回覆於2018-09-25 09:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

彩虹
檢舉此回應
to #星空
他遇到問題可能不只一個

第一個問題 (雖然這不是主要問題,但是以後必須改寫)
我建議先不要用 php mail() 函式來寄信,這多半都會是垃圾信,或收不到
所以希望他先採 phpmailer 來研究

第二個問題
checkbox name 沒有使用陣列名稱,如 name="to_email[]" ,最後還需要搭配 join()

第三個問題
看不到他撈資料的迴圈是包在哪一層,是 form 外層,還是 form 內層
如果是包在外層的話,儘管他使用 checkbox[],也沒有辦法達到多個收件者
一樣只能取到一筆資料,因為會以 button 按下的 form 為主


另外有幾個要建議的地方

1.不要再把 html 與 php 混在一起
2.為什麼要再把自己的值,再丟給自己呢


本篇文章回覆於2018-09-25 10:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

咖啡小子
檢舉此回應
感謝大大門的建議 由於長期卡在ssl 無法過關 一直無法使用phpmailer 我也感到很無奈

目前已經解決這個問題可以載入多人發信階段

A傳送

我使用

echo "<input type='hidden' name='to_name[]' value='email@com'>";

B接收發信

$to_emailno =$_POST["to_email"];
$to_email = implode (", ", $to_emailno);

解決這個問題

感謝大家的幫忙

※一直在等待小舖回信給我還好今天有上來看,所以才這麼慢回復sorry!
本篇文章回覆於2018-09-27 11:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

彩虹
檢舉此回應
恭喜你成功完成了
如果已經解決你的問題,請記得設定解答、不錯的參考以及分數,並將此文章結案,供以後遇到同樣問題的人參考

不過未來你還是很有可能需要改成 phpmailer 來寄信
你不妨把你遇到 phpmailer 的問題在描述一下,提供程式碼讓我們看看
應該是設定上的錯誤

像是假設你是以 phpmailer 搭配 gmail 寄信,卻一直寄不出去,這是很正常的
因為你還需要到 gmail 設定低安全性才有辦法
本篇文章回覆於2018-09-27 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

咖啡小子
檢舉此回應

感謝彩虹大大回復

關於你建議的問題
1.小弟長期無法突破ssl瓶頸,所以暫時無法使用phpmailer ,我也很想><"
2.checkbox name 沒有使用陣列名稱,如 name="to_email[]" ← 這是我想要的答案 感謝
3.由於沒有把全部程式碼show出來 我是利用讀取sql 資料庫迴圈 把資料列陣完成
echo "<input type='hidden' name='to_name[]' value='".$recordRow[$i]["email"]."'>";

另外的二個建議
1.html 與 php 不要混再一起 會再改進這個習慣 謝謝
2.為什麼要再把自己的值,再丟給自己呢 (因為卡在接收資料不知道該如何處理)

再次感謝您這麼詳細的建議
本篇文章回覆於2018-09-27 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

咖啡小子
檢舉此回應
回復彩虹大大

目前雖然適用mail 但也是使用gmail stmp方式傳送接收信件都還算順利

gmail已經有降低安全性

另外請教phpmailer一定要通過ssl才可以使用嗎 還是改Port = 587就可以了呢?
本篇文章回覆於2018-09-27 11:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

彩虹
檢舉此回應
port設定錯誤囉,是要設定465
另外分享一下主要設定有這些

本篇文章回覆於2018-09-27 11:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

小魚
檢舉此回應
話說回來,
我不知道彩虹大大怎麼有辦法寄的,
我每次Port用465都不能成功傳送,
但是用25跟587就可以...
本篇文章回覆於2018-09-29 00:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

彩虹
檢舉此回應
你用的是 TLS 搭配 587 吧
這問題蠻簡單的呀
本篇文章回覆於2018-09-29 14:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

小魚
檢舉此回應
好像是tls,
所以兩個的port是不一樣的,
不過我用C#搭配SSL也是用587,
還是說C#的SSL其實是TLS?
這就不是很清楚了...
本篇文章回覆於2018-09-29 23:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.