目的: 讀取 SQL 的欄位值 & Email 處理
處理說明: 1>OracleDataReader reader;
cmd.CommandText = Tmp_Sql;
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
cmd.CommandText = Tmp_Sql;
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
ChkMail.To.Add(reader["NOTES_MAIL"].ToString());
}
};
2>Email 處理
MailMessage ChkMail = new MailMessage();
string mail_from = "tlsapp@ms.aidc.com.tw";
ChkMail.From = new MailAddress(mail_from, "AMM系統", System.Text.Encoding.UTF8);//發送者
string subject = "AMM V20107 工作步序資料維護 - 工時不完整(=0)";
string content = "附檔內的件號工作步序資料不完整<br>"
+ "請至 AMM V20107維護工作步序資料<br>";
sendMail(subject, content, ChkMail);
//ChkMail.Subject = subject; //主題
//ChkMail.Body = content; //內容
//SmtpClient Smtp = new SmtpClient(); //建立SMTP連線
//Smtp.Send(ChkMail); //發送
1>*.js
//[MAIL通知]鈕
function MAILNotifyBtn_click() {
var np = {};
np = {
};
Ext.Ajax.request({
url: '../../api/V20107DAPI/DoMAIL',
method: 'POST',
async: false,
//standardSubmit: true, //若要傳送檔案至前端, standardSubmit必需設為 true
params: np,
success: function (response, opts) {
var Tmp_Obj = Ext.decode(response.responseText);
if (Tmp_Obj["success"] == false) {
var Tmp_Rtn_Msg = "EMAIL通知人員失敗!!<br>"
+ "請檢核<br>"
+ Tmp_Obj["Rtn_Msg"];
mywarnalert(Tmp_Rtn_Msg);
return;
}
else {
var Tmp_Rtn_Msg = "EMAIL通知人員成功!!<br>";
mysuccessalert(Tmp_Rtn_Msg);
}
}
});
} // end of function MAILNotifyBtn_click() {
// [MAIL通知] - DoMAIL
[HttpPost]
public HttpResponseMessage DoMAIL()
{
//取得參數值
var c = HttpContext.Current;
NameValueCollection nvc = c.Request.Form;
string Tmp_USERID = LoginUserModel.LoginUserId;
string Tmp_RtnMsg = "";
string To_Adr = "";
string n = funId + "_DoMAIL";
OracleConnection conn = new OracleConnection(DBService.ConnectionString(DBLINK));
OracleCommand cmd = new OracleCommand();
OracleDataReader reader;
var response = Request.CreateResponse();
MailMessage ChkMail = new MailMessage();
try
{
conn.Open();
conn.ClientInfo = User.Identity.Name;
conn.ModuleName = BaseSYS + "_" + BaseMODID;
conn.ActionName = ActionName;
cmd.BindByName = true;
cmd.Connection = conn;
string Tmp_Sql;
int Tmp_cnt=0;
Tmp_Sql = " SELECT COUNT(*) "
+" FROM AMM_WKSTP A, AMM_WKSTPD B "
+" WHERE A.MITM = B.MITM "
+" AND (B.WHR = '0' OR B.WHR IS NULL) "
+" AND SUBSTR(DEPID,1,2) = ( SELECT SUBSTR(DEPID, 1, 2) "
+ " FROM HR_EMPLYM "
+ " WHERE EMPLYID = "+myfunc.AA(Tmp_USERID)+") ";
Tmp_cnt = int.Parse(myfunc.SqlValue(Tmp_Sql));
if (Tmp_cnt==0)
{
Tmp_RtnMsg = "目前登入使用者(" + Tmp_USERID + ")的部門相關工作步序資料<br>"
+ "工時資料均完整 ( 工時>0 ) <br>"
+ "不需 MAIL 通知相關人員";
response.Content = new StringContent("{'success': false,'Rtn_Msg':'" + Tmp_RtnMsg + "'}"); // 回應內容
return response;
}
//填寫 Email.From, To, subject, BODY
Tmp_Sql= " SELECT A.EMPLYID,B.NOTES_MAIL "
+" FROM AMM_MAILIST A, HR_EMPLYM B "
+" WHERE A.EMPLYID = B.EMPLYID "
+" AND A.DEPID = ( SELECT SUBSTR(DEPID, 1, 2) "
+ " FROM HR_EMPLYM "
+ " WHERE EMPLYID ="+myfunc.AA(Tmp_USERID)+" ) ";
cmd.CommandText = Tmp_Sql;
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
ChkMail.To.Add(reader["NOTES_MAIL"].ToString());
}
};
string mail_from = "tlsapp@ms.aidc.com.tw";
ChkMail.From = new MailAddress(mail_from, "AMM系統", System.Text.Encoding.UTF8);//發送者
string subject = "AMM V20107 工作步序資料維護 - 工時不完整(=0)";
string content = "附檔內的件號工作步序資料不完整<br>"
+ "請至 AMM V20107維護工作步序資料<br>";
sendMail(subject, content, ChkMail);
//ChkMail.Subject = subject; //主題
//ChkMail.Body = content; //內容
//SmtpClient Smtp = new SmtpClient(); //建立SMTP連線
//Smtp.Send(ChkMail); //發送
response.StatusCode = HttpStatusCode.OK;
Tmp_RtnMsg = "已 Email 通知相關人員 !! <br>";
response.Content = new StringContent("{'success': true,'Rtn_Msg':'" + Tmp_RtnMsg + "'}"); // 回應內容
return response;
//excuteSQLTran
} //try
catch (Exception e)
{
string Tmp_msg;
Tmp_msg = myfunc.Get1ORA(e.Message);
Tmp_RtnMsg = "Email 通知失敗<br>"
+ Tmp_msg;
response.Content = new StringContent("{'success': false,'Rtn_Msg':'" + Tmp_RtnMsg + "'}"); // 回應內容
return response;
}
finally
{
conn.Close();
}
} // end of DoMAIL