BOOL CSMTP::prepare_header(MailHeader * msg)
{
	CTime currentDate = GetCurrentTime();
	ASSERT( msg != NULL );
	CString sTo;
	CString sDate;
	CString sSubject = msg->Subject;	
	CString sMessageId = "";
	CString sSender = msg->From.Left(msg->From.Find("@"));
	sMessageId.Format("<%s@%s>",currentDate.Format("%d%m%y.%H%M%S"),sSender);

	CString sHeader = "";	
	
	msg->Date = GetCurrentTimeStr();//currentDate.Format("%a, %d %b %y %H:%M:%S %Z");
	// Format: Mon, 01 Jun 2010 01:10:30 GMT
	sDate = msg->Date;
	sHeader.Format( "Date: %s\r\n"\
		"From: %s\r\n"\
		"To: %s\r\n"\
		"Subject: %s\r\n"
		"Message-ID: %s\r\n",
		(LPCTSTR)sDate,
		(LPCTSTR)msg->From,
		(LPCTSTR)msg->To,
		(LPCTSTR)sSubject,
		(LPCTSTR)sMessageId);
	return TRUE;
}
void CSMTPClient::CloseSocket()
{
	CString message;
	message.Format("%s - SMTP connection (ID=%d) closed", GetCurrentTimeStr(), smtpProcessId);
	this->m_parrent->WriteLog(message);
	Close();

	m_mailHdr->InsertMail(m_mailHdr);
}
void CSMTPClient::OnClose(int nErrorCode)
{
	//phuc add 20101123
	CString message;
	message.Format(_T("%s - SMTP connection (ID=%d) closed"), GetCurrentTimeStr(), smtpProcessId);
	m_parrent->WriteLog(message);
	//end phuc add 20101123

	CAsyncSocket::OnClose(nErrorCode);

	//phuc add 20101123
	delete this;
	//end phuc add 20101123
}
BOOL CSMTP::SendMessage(MailHeader * msg)
{
	ASSERT( msg != NULL );

	msg->Date = GetCurrentTimeStr();

	if( !m_Connected )
	{
		m_Error = _T( "Must be connect" );
		AfxMessageBox(_T(m_Error));
		return FALSE;
	}
	if( FormatMailMessage( msg ) == FALSE )
	{
		return FALSE;
	}
	if( transmit_message( msg ) == FALSE )
	{
		return FALSE;
	}
	return TRUE;
}
Exemple #5
0
VOID NdPerfLog(__in LPCWSTR logfile, __in __format_string LPCWSTR  fmt, ...)
{
	va_list argList;
	va_start(argList, fmt);	
	WCHAR szMsg[4096];
	StringCchVPrintfW(szMsg, _countof(szMsg), fmt, argList);
	va_end(argList);

	//MSG(동기화 추가);
	HANDLE hFile = CreateFile(
		logfile,
		GENERIC_WRITE,
		FILE_SHARE_READ | FILE_SHARE_WRITE,
		NULL,
		OPEN_ALWAYS,
		FILE_ATTRIBUTE_NORMAL,
		NULL
		);
	if (hFile == INVALID_HANDLE_VALUE)
	{
		_stprintf_s(szMsg, L"Cannot create a log file. [errcode: %d][%s]\n", GetLastError(), logfile);
		OutputDebugString(szMsg);
	}
	else
	{
		(VOID)SetFilePointer(hFile, 0, 0, FILE_END);
		std::string s;
		s.append(ToAnsiStr(GetCurrentTimeStr().c_str()));
		s.append(" ");
		s.append(ToAnsiStr(szMsg));
		s.append("");
		DWORD dwWritten;
		(VOID)WriteFile(hFile, s.c_str(), (DWORD)s.size(), &dwWritten, 0);
		CloseHandle(hFile);
	}
}