TP5做工資條群發系統

2021-08-20 20:03:43 字數 1926 閱讀 8823

本人接觸php已有一年,公司需要匯入excel然後傳送給每個人工資條,所以我就借助各方面資源寫了這些,現在公司已經開始使用了,如有一些地方寫得有問題或者很糟糕的地方,還請各位大神給出指點,小弟再修正.

思路是使用多個郵箱 輪流 依次

給多個員工傳送郵件,是為了防止因為短時間大批量傳送郵件被封,我也不知道這樣管不管用,但是我是這麼做的,比如有郵箱m1,m2,m3.員工有12345,那麼傳送的順序是這樣的m1=>1,m2=>2,m3=>3,m1=>4,m2=>5

這篇文章省略了excel的匯入,dao層的操作,主要是controller和service層的郵箱選擇並且輪流給每位員工傳送郵件的操作,看起來比較簡陋,我個人感覺功能應該沒什麼太大的問題

郵箱裡邊這個東西要先開啟,要不然一切都是徒勞

在extend裡邊寫了乙個執行傳送和選擇郵箱的類

<?php 

namespace util;

use phpmailer\phpmailer\phpmailer;

class mail

/*** @return mail|null

* 單例   避免併發衝突

*/static public function instance()

return self::$instance;

}/**

* @param $to_email

* @param $message

* @return array

* @throws \phpmailer\phpmailer\exception

* 傳送郵件

*/public function send($to_name,$to_emails,$message) else

}/**

* @return mixed

* 獲取下乙個郵箱

*/private function getnextemail()else

return $this->emails[$this->current_id];}}

控制器,獲取要傳送的資訊和收件人的郵箱,然後引用上邊那個類來執行傳送操作

因為工資表的資訊是用excel匯入到資料庫的,每位員工的郵箱也存在這裡邊,所以這裡我就直接在資料庫裡取了

<?php 

use think\controller;

use util\mail as ue;

class mail extends controller;//判斷郵箱是否為空

$chars = "/^([0-9a-za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z](\\.[a-z])?)$/i";

if (!preg_match($chars, $v['mail']))//驗證郵箱合法性

$message = "工資月份

入職時間

姓名基本工資

出勤天數

業績考核

獎金加班時間

薪資變動

請假天數

公休遲到扣款

缺卡扣款

社保扣費

曠工應發工資

個人所得稅扣費

實發工資

";if(empty($message))//判斷內容是否為空

ue::instance()->send($v['name'],$v['mail'],$message);

$wage->editstatus($v['id']);//這個是在傳送完成以後把資料庫裡的乙個字段標識改一下}}

}

最後感謝我上上任技術經理給了我很大的

工資條群發神器,HR必備!!!

for int i startrow i sendnum startrow i else 接收者郵件集合 email.mailbody createhtml i if email.send else 延時1秒,避免被封 thread.sleep 500 進度條更新 progressbarvalue ...

C Excel匯入工資條群發郵箱

做的乙個小應用,需要的朋友可以參考參考,使用winform實現了乙個匯入excel,工資條的功能。功能已經實現,還不夠完善,大致運用了oledbconnection,smtp oledbconnection來動態獲取excel的資料 smtp發郵件 簡單郵件傳輸協議 mail transfer pr...

使用Excel巨集來群發郵件或工資條

private sub 全自動傳送郵件 click 要能正確傳送並需要對microseft outlook進行有效配置 on error resume next dim rowcount,endrowno dim objmail as mailitem 取得當前工作表與cells 1,1 相連的資料...