// DlgMailSender.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "CrashReport.h" #include "DlgMailSender.h" #include "ATL_NEW/include/atlmime.h" #include "SMTPMailConnect.h" // CDlgMailSender ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgMailSender, CDialog) CDlgMailSender::CDlgMailSender(CWnd* pParent /*=NULL*/) : CDialog(CDlgMailSender::IDD, pParent) { } CDlgMailSender::~CDlgMailSender() { } void CDlgMailSender::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, ListMailUserList_); } BEGIN_MESSAGE_MAP(CDlgMailSender, CDialog) ON_EN_KILLFOCUS(IDC_EDIT1, &CDlgMailSender::OnEnKillfocusEdit1) ON_BN_CLICKED(IDC_ADDUSER, &CDlgMailSender::OnBnClickedAdduser) ON_BN_CLICKED(IDC_DELUSER, &CDlgMailSender::OnBnClickedDeluser) ON_BN_CLICKED(IDC_MAILTOUSER, &CDlgMailSender::OnBnClickedMailtouser) ON_WM_SHOWWINDOW() ON_WM_ACTIVATE() ON_WM_DESTROY() ON_WM_CLOSE() END_MESSAGE_MAP() // CDlgMailSender ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgMailSender::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. UserMailList_.clear(); GetListCulUser_ = -1; LoadMailingData(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CDlgMailSender::OnEnKillfocusEdit1() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. GetDlgItemText(IDC_EDIT1,AddUserString_); } void CDlgMailSender::OnBnClickedAdduser() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. std::vector::iterator iter = std::find(UserMailList_.begin(),UserMailList_.end(),AddUserString_); //ÀÌ¹Ì »ç¿ëÀÚ°¡ Á¸Àç ÇÔÀ¸·Î ¾È³Ö¾îµµ µÊ if(iter != UserMailList_.end()) return; //½ºÆ®¸µ ŸÀÔÁß¿¡ @À̰¡ Á¸Àç ÇÏ´ÂÁö ã´Â´Ù/ int Find = AddUserString_.Find(L"@"); //ÃÖÃÊ ÇÊÅ͸µ if(Find == -1) return; //2Â÷ ÇÊÅ͸µ //ÇØ´ç µµ¸ÞÀÎÀÌ ¾Æ´Ï¶ó¸é ¸ÞÀÏÀ» ¾µ¼ö ¾ø´Ù! int cokr = AddUserString_.Find(L".co.kr"); int com = AddUserString_.Find(L".com"); int net = AddUserString_.Find(L".net"); if (cokr == -1 && com == -1 && net == -1) return; UserMailList_.push_back(AddUserString_); ListMailUserList_.AddString(AddUserString_); } void CDlgMailSender::OnBnClickedDeluser() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. int ListCursel = ListMailUserList_.GetCurSel(); if(ListCursel < 0) return; UserMailList_.erase(UserMailList_.begin() + ListCursel); ListMailUserList_.DeleteString(ListCursel); } void CDlgMailSender::LoadMailingData() { FILE* pFile; pFile = _tfopen(L"UserList.dat",L"rb"); if (!pFile) { return; } int sizeData = static_cast(UserMailList_.size()); fread(&sizeData,sizeof(int),1,pFile); TCHAR memSave[256]; memset(memSave,0,sizeof(TCHAR)*256); for (int index = 0 ; index < sizeData ; index++) { fread(memSave,sizeof(TCHAR)*256,1,pFile); UserMailList_.push_back(memSave); ListMailUserList_.AddString(memSave); } fclose(pFile); } void CDlgMailSender::SaveMailingData() { FILE* pFile; pFile = _tfopen(L"UserList.dat",L"wb"); if (!pFile) { return; } int sizeData = static_cast(UserMailList_.size()); fwrite(&sizeData,sizeof(int),1,pFile); TCHAR memSave[256]; memset(memSave,0,sizeof(TCHAR)*256); for (int index = 0 ; index < sizeData ; index++) { wsprintf(memSave,L"%s",UserMailList_[index]); fwrite(memSave,sizeof(TCHAR)*256,1,pFile); } fclose(pFile); } void CDlgMailSender::OnBnClickedMailtouser() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CMimeMessage msg; msg.SetSender(L"Sensr7086@webzen.co.kr"); msg.SetSenderName(L"±è¹Îö"); for (size_t index = 0 ; index < UserMailList_.size() ; ++index) { msg.AddRecipient(UserMailList_[index]); } CString FilePath; FilePath.Format(L"%s",L"C:\\Users\\sensr7086\\Documents\\"); CString Subject; Subject.Format(L"%s%s",theApp.Excelfile,L"Å©·¹½¬ Åë°è ÀÔ´Ï´Ù."); msg.SetSubject(Subject); CString FilePathFullPath; FilePathFullPath.Format(L"%s%s",FilePath,theApp.Excelfile); msg.AddText(L"¿À·ù Åë°è ÆÄÀÏ ÀÔ´Ï´Ù."); msg.AttachFile(FilePathFullPath); CNEWSMTPMailConnect conn; if(conn.Connect(L"rcvmail7.naver.com")) { conn.SendMessage(msg); conn.Disconnect(); } } void CDlgMailSender::OnShowWindow(BOOL bShow, UINT nStatus) { CDialog::OnShowWindow(bShow, nStatus); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. } void CDlgMailSender::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) { CDialog::OnActivate(nState, pWndOther, bMinimized); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. //À̰ÍÀÌ 0À̸é HIDE¸¦ ÀÇ¹Ì ÇÑ´Ù,. } void CDlgMailSender::OnDestroy() { CDialog::OnDestroy(); // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. SaveMailingData(); } void CDlgMailSender::OnClose() { // TODO: ¿©±â¿¡ ¸Þ½ÃÁö 󸮱â Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº»°ªÀ» È£ÃâÇÕ´Ï´Ù. CDialog::OnClose(); SaveMailingData(); } BOOL CDlgMailSender::PreTranslateMessage(MSG* pMsg) { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if(pMsg->message == WM_KEYDOWN) { switch(pMsg->wParam) { case VK_RETURN: { GetDlgItemText(IDC_EDIT1,AddUserString_); //¿£Å͸¦ Ä¡¸é À¯Àú Ãß°¡¿Í °°Àº È¿°ú OnBnClickedAdduser(); pMsg->wParam = NULL; } case VK_ESCAPE: { pMsg->wParam = NULL; } default: break; } } return CDialog::PreTranslateMessage(pMsg); }