6432. SMTP 오류 FOCommon.FindMe() 수정 및 BaseController.SendEmailNew() 추가
This commit is contained in:
parent
204554be0d
commit
31ad5fe636
|
|
@ -14,6 +14,8 @@ using NP.Model;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using OfficeOpenXml;
|
using OfficeOpenXml;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Net.Mail;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
namespace NP.Base
|
namespace NP.Base
|
||||||
{
|
{
|
||||||
|
|
@ -1073,8 +1075,7 @@ namespace NP.Base
|
||||||
System.Web.Mail.MailMessage mail = null;
|
System.Web.Mail.MailMessage mail = null;
|
||||||
switch (SendType)
|
switch (SendType)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1: break;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
@ -1122,9 +1123,74 @@ namespace NP.Base
|
||||||
SetError("emailfail:" + rcvEmail + ":" + ex.Message + ex.StackTrace);
|
SetError("emailfail:" + rcvEmail + ":" + ex.Message + ex.StackTrace);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 메일발송 (추가)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="title"></param>
|
||||||
|
/// <param name="Html"></param>
|
||||||
|
/// <param name="toEmail"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected int SendEmailNew(string title, string Html, string toEmail)
|
||||||
|
{
|
||||||
|
// 2025-01-21 (SendEmail 이 더이상 사용되지 않는 코드로 보여지기에 새로 생성)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Web.config에서 설정된 값을 가져온다 (배열순서)
|
||||||
|
=> <add key="masteremail" value="yicte@cte.or.kr;smtp.daum.net;465;yicte;1111" />
|
||||||
|
*/
|
||||||
|
|
||||||
|
string[] masterEmail = GetConfig("masteremail").Split(';');
|
||||||
|
string smtpHost = masterEmail[1];
|
||||||
|
int smtpPort = Convert.ToInt32(masterEmail[2]);
|
||||||
|
string smtpUser = masterEmail[3];
|
||||||
|
string smtpPassword = masterEmail[4];
|
||||||
|
string fromEmail = masterEmail[0];
|
||||||
|
|
||||||
|
using (var smtpClient = new SmtpClient(smtpHost, smtpPort))
|
||||||
|
{
|
||||||
|
// 타임아웃 설정 추가
|
||||||
|
smtpClient.Timeout = 30000; // 10초
|
||||||
|
|
||||||
|
smtpClient.Credentials = new NetworkCredential(smtpUser, smtpPassword);
|
||||||
|
smtpClient.EnableSsl = true;
|
||||||
|
|
||||||
|
// SSL/TLS 설정 명시
|
||||||
|
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
|
||||||
|
|
||||||
|
using (var mailMessage = new System.Net.Mail.MailMessage())
|
||||||
|
{
|
||||||
|
mailMessage.From = new MailAddress(fromEmail, "영남건설기술교육원");
|
||||||
|
mailMessage.Subject = title;
|
||||||
|
mailMessage.Body = Html;
|
||||||
|
mailMessage.IsBodyHtml = true;
|
||||||
|
mailMessage.To.Add(toEmail);
|
||||||
|
|
||||||
|
smtpClient.Send(mailMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
catch (SmtpException ex)
|
||||||
|
{
|
||||||
|
// SMTP 특정 예외 처리
|
||||||
|
Logger.Error($"SMTP 에러: {ex.Message}");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
// 일반 예외 처리
|
||||||
|
Logger.Error($"메일발송 에러 : {ex.Message}");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SendMailTemplate
|
/// SendMailTemplate
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -1148,7 +1214,7 @@ namespace NP.Base
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MailMessage mail = new MailMessage();
|
var mail = new System.Web.Mail.MailMessage();
|
||||||
mail.From = sdEmail;
|
mail.From = sdEmail;
|
||||||
mail.To =rcvEmail;
|
mail.To =rcvEmail;
|
||||||
mail.Subject = title;
|
mail.Subject = title;
|
||||||
|
|
|
||||||
|
|
@ -331,46 +331,37 @@ namespace NP.Base.Controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// users = Dao.Get<Users>("users.findme", new Hashtable() { { "Mobile1", em }, { "Mobile2", em.Replace("-", "") } }).ToList();
|
|
||||||
//}
|
|
||||||
if (users.Count() != 1)
|
if (users.Count() != 1)
|
||||||
{
|
{
|
||||||
//검색결과 2개 개정이라면 보내면 안됨..다른사람일 수도
|
//검색결과 2개 개정이라면 보내면 안됨..다른사람일 수도
|
||||||
return JsonOK(-1);
|
return JsonOK(-1);
|
||||||
}
|
}
|
||||||
var user = users.First();
|
var user = users.First();
|
||||||
|
|
||||||
//메시지 전송시간 기록
|
//메시지 전송시간 기록
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
int pwcallno = r.Next(1, 30000);
|
int pwcallno = r.Next(1, 30000);
|
||||||
Dao.Save("users.pwcalltime", new Hashtable() { { "userno", user.userno }, { "pwcallno", pwcallno } });
|
Dao.Save("users.pwcalltime", new Hashtable() { { "userno", user.userno }, { "pwcallno", pwcallno } });
|
||||||
var masteremail = GetConfig("masteremail");
|
var masteremail = GetConfig("masteremail");
|
||||||
String fronturl = GetConfig("fronturl");
|
String fronturl = GetConfig("fronturl");
|
||||||
//if (IsEmail)
|
|
||||||
//{
|
if (IsEmail && users.Count == 1)
|
||||||
//var et = Dao.Get<MailTP>("mm.mailtp.get", 1).FirstOrDefault();
|
{
|
||||||
//var MHtml = "";
|
var MHtml = "<img src=\"" + fronturl + "/img/common/gnb_logo.gif\" alt=\"\" /><br /><br />안녕하세요, " + user.username + "님,<br />당신의 영남건설기술교육원 비밀번호를 재설정하기 위한 링크를 전달합니다.<br />" +
|
||||||
//if (et != null)
|
"아래 링크를 클릭하셔서 비밀번호를 재설정해주세요.<br /><br />" +
|
||||||
//{
|
"<a href=\"" + fronturl + "/Account/FindMe?pwcallno=" + pwcallno + "&userno=" + user.userno + "\" target=\"_blank\" style=\"color: #0094ff;\">비밀번호 재설정</a><br /><br />이 링크는 24시간 뒤 만료됩니다.";
|
||||||
// MHtml = et.MHtml.Replace("src=\"/Files/Editor", "src=\"" + fronturl + "/Files/Editor").Replace("^비밀번호링크^", fronturl + "/Account/FindMe?PWCallNo=" + pwcallno + "&UserNo=" + user.UserNo).Replace("^회원명^", user.UserName).Replace("../img/", fronturl + "/img/").Replace("^fronturl^", fronturl);
|
|
||||||
//}
|
int mailReuslt = SendEmailNew("[영남건설기술교육원] 비밀번호 찾기 안내", MHtml, email);
|
||||||
//else
|
|
||||||
//{
|
|
||||||
var MHtml = "<img src=\"" + fronturl + "/img/common/gnb_logo.gif\" alt=\"\" /><br /><br />안녕하세요, " + user.username + "님,<br />당신의 영남건설기술교육원 비밀번호를 재설정하기 위한 링크를 전달합니다.<br />" +
|
return JsonOK(mailReuslt == 1 ? 1000 : 0);
|
||||||
"아래 링크를 클릭하셔서 비밀번호를 재설정해주세요.<br /><br />" +
|
}
|
||||||
"<a href=\"" + fronturl + "/Account/FindMe?pwcallno=" + pwcallno + "&userno=" + user.userno + "\" target=\"_blank\" style=\"color: #0094ff;\">비밀번호 재설정</a><br /><br />이 링크는 24시간 뒤 만료됩니다.";
|
else
|
||||||
//}
|
{
|
||||||
//return JsonOK(SendEmail(0, user.userid, null, null, user.username + "님, 유앤파트너즈 비밀번호를 재설정할 수 있는 링크를 전달합니다.", MHtml));
|
return JsonOK(0);
|
||||||
return JsonOK(SendEmail(masteremail.Split(';')[1], GetInt(masteremail.Split(';')[2]), masteremail.Split(';')[3], masteremail.Split(';')[4], 999, user.email, masteremail.Split(';')[0], "영남건설기술교육원 운영자", "[영남건설기술교육원] 비밀번호 찾기 안내", MHtml, "", "0:0"));
|
}
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// var html = "회원님의 이메일주소는 " + user.UserId + " 아래 링크를 클릭해주셔서 인증을 완료해주세요. [" + fronturl + "/Account/FindMe?PWCallNo=" + pwcallno + "&UserNo=" + user.UserNo + "]";
|
|
||||||
// return JsonOK(SendSms(null, user.Mobile, "[유앤파트너즈] 계정찾기", html, null, true, "7"));
|
|
||||||
// //Sms.Save("test", new Hashtable() { });
|
|
||||||
// //return JsonOK(1);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public JsonResult FindMeFinal(VMUser vm)
|
public JsonResult FindMeFinal(VMUser vm)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue