sendmail 별도의 프로세스로 분리하고 클라우드서버에서 실행함

This commit is contained in:
chi
2025-05-22 13:17:09 +09:00
parent 930e09400d
commit 3b2be90cd0
57 changed files with 20001 additions and 5183 deletions

View File

@@ -2,6 +2,8 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
@@ -25,6 +27,14 @@ namespace FPJ0000
this.chkFanout.Checked = pidx_.bFanOut;
this.chkHigh.Checked = pidx_.bHighlight;
this.chkMajor.Checked = pidx_.bmajoritem;
this.rtPanelImage.SizeMode = PictureBoxSizeMode.Zoom;
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
base.OnFormClosed(e);
if (this.rtPanelImage.Image != null)
this.rtPanelImage.Image = null;
}
void ProjectsHistory_TableNewRow(object sender, DataTableNewRowEventArgs e)
@@ -176,6 +186,23 @@ namespace FPJ0000
btSendMail.Enabled = btPart.Enabled;
tbSFI.Text = dr.sfi.ToString("N2");
if (dr.IspanelimageNull()) rtPanelImage.Image = null;
else
{
try
{
using (MemoryStream ms = new MemoryStream(dr.panelimage))
{
rtPanelImage.Image = Image.FromStream(ms);
}
}
catch (Exception ex)
{
AR.UTIL.MsgE("Panel Image Error\n" + ex.Message);
}
}
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.project));
if (curLevel >= 5)
@@ -267,6 +294,18 @@ namespace FPJ0000
this.dr.process = cmbReqProcess.Text;
this.dr.status = cmbState.Text;
this.dr.part = cmbReqTeam.Text;
if (this.rtPanelImage.Image != null)
{
using (MemoryStream ms = new MemoryStream())
{
this.rtPanelImage.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); // 또는 원하는 포맷
this.dr.panelimage = ms.ToArray();
}
}
else
{
this.dr.SetpanelimageNull();
}
this.dr.ReqLine = cmbReqLine.Text;
this.dr.ReqSite = cmbReqSite.Text;
@@ -778,5 +817,42 @@ namespace FPJ0000
{
}
private void toolStripButton10_Click(object sender, EventArgs e)
{
var img = this.rtPanelImage.Image;
this.rtPanelImage.Image = null;
if (img != null) img.Dispose();
dr.SetpanelimageNull();
}
private void toolStripButton9_Click(object sender, EventArgs e)
{
var img = this.rtPanelImage.Image;
using (var od = new OpenFileDialog())
{
od.Filter = "image|*.jpg,*.gif,*.png,*.bmp";
if (od.ShowDialog() == DialogResult.OK)
{
var oldimage = this.rtPanelImage.Image;
this.rtPanelImage.Image = Image.FromFile(od.FileName);
if (oldimage != null) oldimage.Dispose();
}
}
}
private void toolStripButton11_Click(object sender, EventArgs e)
{
//paste clipboard image data
var img = Clipboard.GetImage();
if (img != null)
{
var oldimage = this.rtPanelImage.Image;
this.rtPanelImage.Image = img;
if (oldimage != null) oldimage.Dispose();
}
}
}
}