各位大大好
小弟目前有一個簽核系統很常會使用到寄信功能
寄信功能是已經封裝好了
但是目前在設定body方面上小弟還是看不順眼
現在有三種類型信件: 1. 簽核結案通知 2. 下一關簽核人通知 3. 退簽通知
這三封信件的body都只有些微欄位呈現差別
目前撰寫方式很醜的是全都塞在主要class Sign的function中
public function sendSignMail($sign_title, $description, $sign_type, $sign_priority, $approver_dept_no, $created_user, $test = false)
{
$topic = "系統簽核通知信";
$body ="親愛的主管您好:<br><br>";
$body .="系統有您需要簽核的單據,內容如下:<br><br>";
$body .="標題:$sign_title<br><br>";
$body .="說明:<br>$description<br><br>";
$body .="簽核類別:".$sign_type."<br>";
$body .="簽呈等級:".$sign_priority."<br>";
$body .="應簽部門:$dep_name<br>";
$body .="應簽人員:$first_signer_name<br>";
$body .="送簽人員:$sender<br>";
$body .="送簽時間:$now <br><br>";
$body .=" *********************************************************<br>
本信件由系統自動發送,請勿直接回覆信件!!<br>
若您有系統作業相關問題,請電洽系統管理人員<br>
*********************************************************";
fn_sendmail(1, $this->to_mail, $topic, $body, 2, 1);
}
public function sendReturnMail($sign_title, $return_dep, $returner $created_user,$mail_return_reason, $test = false)
{
$topic = "系統退簽通知信";
$body = "親愛的經辦人您好:<br><br>";
$body .="系統通知您有單據被退簽,內容如下:<br><br>";
$body .="標題:$sign_title<br>";
$body .="經辦人:$created_user<br>";
$body .="退簽部門:$return_dep<br>";
$body .="退簽人員:$returner<br>";
$body .="退簽原因:<br>$mail_return_reason<br><br>";
$body .="退簽時間:$now <br><br>";
$body .=" *********************************************************<br>
本信件由系統自動發送,請勿直接回覆信件!!<br>
若您有系統作業相關問題,請電洽系統管理人員<br>
*********************************************************";
fn_sendmail(1, $this->to_mail, $topic, $body, 2, 1);
}
3種不同的就有三個function
如果今天要新增一個共通欄位,就要去三個function新增
小弟覺得應該有更好的方法去設定類似的body
目前是想建立一個mail的主class
裡面可能有topic和 body屬性
然後再創一個signMail class來繼承
再從裡面去拚
但這樣好像還是要寫3個function
只是換個檔案寫的意思就是???
小弟不知道以OOP的角度這樣規劃會不會比較有彈性
上來請教各位大大
想建立一個mail的主class, 裡面可能有topic和 body屬性
fn_sendmail 就是了
我只想得到用 array 產生 body 的字串如下
加滅看看...
<?php
$arr=array(
"親愛的經辦人您好:<br>",
"系統通知您有單據被退簽,內容如下:<br>",
"標題:$sign_title",
"經辦人:$created_user",
"退簽部門:$return_dep",
"退簽人員:$returner",
"退簽原因:<br>$mail_return_reason<br>",
"退簽時間:$now <br>"
);
print(genBody($arr));
function genBody($parr) {
$crlf = "<br>\n";
$body="";
foreach ($parr as $key => $value) {
$body .= "{$value}$crlf";
}
return $body;
}
?>