Click here to Skip to main content
15,885,546 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionGrab Key board focus Pin
aks.13-Aug-09 18:51
aks.13-Aug-09 18:51 
AnswerRe: Grab Key board focus Pin
«_Superman_»13-Aug-09 18:58
professional«_Superman_»13-Aug-09 18:58 
QuestionSMTP: all are not working? Pin
includeh1013-Aug-09 15:03
includeh1013-Aug-09 15:03 
AnswerRe: SMTP: all are not working? Pin
zhu_lin13-Aug-09 15:46
zhu_lin13-Aug-09 15:46 
AnswerRe: SMTP: all are not working? Pin
Bacon Ultimate Cheeseburger13-Aug-09 15:48
Bacon Ultimate Cheeseburger13-Aug-09 15:48 
GeneralRe: SMTP: all are not working? Pin
includeh1013-Aug-09 16:08
includeh1013-Aug-09 16:08 
GeneralRe: SMTP: all are not working? Pin
Bacon Ultimate Cheeseburger13-Aug-09 16:22
Bacon Ultimate Cheeseburger13-Aug-09 16:22 
AnswerRe: SMTP: all are not working? [modified] Pin
includeh1013-Aug-09 16:19
includeh1013-Aug-09 16:19 
Here are all test code, are there errors?

#define CHECK(iStatus) \
if(iStatus==SOCKET_ERROR) return 0;\
if(iStatus==0) return 0

#define EOL  "\r\n"

BOOL TestSend()
{
	const char*pszServer="www.mycompany";
	const char*pszSmtpEmail	="myemail@hotmail.com";
	const char*pszSenderEmail	="myemail@hotmail.com";
	const char*pszSubject	="my subject";
	const char*pszReceiver	="myemail@hotmail.com";
	const char*pszBody		="the body";
	const char*pszSenderName	="myemail@hotmail.com";

	char	sz[1024];
	char	wa[1024];
	char	szBuffer[4096];
	char	waTime[270];

	int iRet;
	//-------------------------
	HOSTENT* pHost=::gethostbyname(pszServer);
	if(pHost==0) 	return 0;
	SOCKET hSock=socket(PF_INET,SOCK_STREAM,0); 
	if(hSock==INVALID_SOCKET) return 0;

	SERVENT*pServer=::getservbyname("mail",0);

	const int iPort=pServer?pServer->s_port:IPPORT_SMTP;

	SOCKADDR_IN    sockAddr;
	sockAddr.sin_family	=AF_INET;
	sockAddr.sin_port	=iPort;
	sockAddr.sin_addr	=*((LPIN_ADDR)*pHost->h_addr_list);

	if(::connect(hSock,(PSOCKADDR) &sockAddr,sizeof(sockAddr)))
	{
		return 0;
	}
	iRet=::recv(hSock,szBuffer,sizeof(szBuffer),0);
	// Receive initial response from SMTP server.
	CHECK(iRet);

	// Send HELO 
	wsprintf(sz,"HELO %s%s","microsoft [111.122.1.12]",EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));
	CHECK(::recv(hSock,szBuffer,sizeof(szBuffer),0));

	// Send MAIL FROM:
	wsprintf(sz,"MAIL FROM: <%s>%s",pszSmtpEmail,EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));
	CHECK(::recv(hSock,szBuffer,sizeof(szBuffer),0));

	// Send RCPT TO: 
	wsprintf(sz,"RCPT To: <%s>%s",pszReceiver,EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));
	CHECK(::recv(hSock,szBuffer,sizeof(szBuffer),0));

	// Send DATA.
	wsprintf(sz,"DATA%s",EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));
	CHECK(::recv(hSock,szBuffer,sizeof(szBuffer),0));

	///szHead
	strcpy(waTime,T("Date: "));
	::GetDateFormat(0x409,0,0,T("ddd,dd MMM yyyy"),wa,200);
	strcat(waTime,wa);
	strcat(waTime,T(" "));
	::GetTimeFormat(0x409,0,0,T("HH:mm:ss"),wa,200);
	strcat(waTime,wa);

	char szHead[350];

	strcpy(szHead,"From: ");
	strcat(szHead,pszSenderName );
	strcat(szHead,"<");
	strcat(szHead,pszSenderEmail);
	strcat(szHead,">");
	strcat(szHead,"\r\n");
	strcat(szHead,"To: ");
	strcat(szHead,pszReceiver);
	strcat(szHead,"\r\n");
	strcat(szHead,"Subject: ");
	strcat(szHead,pszSubject );
	strcat(szHead,"\r\n");
	strcat(szHead,waTime);
	strcat(szHead,"\r\n");
	strcat(szHead,"X-Mailer: Outlook Express 1.00\r\nMIME-Version: 1.0\r\nContent-Type: text/plain;\r\n\tcharset=\"iso-8859-1\"\r\nContent-Transfer-Encoding: 7bit\r\n\r\n");

	wsprintf(sz,szHead);
	CHECK(::send(hSock,sz,strlen(sz),0));

	char szBody[4800];
	strcpy(szBody,pszBody );

	strcat(szBody,"\r\n\r\n");
	CHECK(::send(hSock,szBody,strlen(szBody),0));

	// Send blank line and a period.
	wsprintf(sz,"%s.%s",EOL,EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));
	CHECK(::recv(hSock,szBuffer,sizeof(szBuffer),0));

	// Send QUIT.
	wsprintf(sz,"QUIT%s",EOL);
	CHECK(::send(hSock,sz,strlen(sz),0));

	//****** iRet==0, this may be error? 
	iRet=::recv(hSock,szBuffer,sizeof(szBuffer),0);

	// Close server socket and prepare to exit.
	closesocket(hSock );
	WSACleanup();
	return 1;
}


modified on Thursday, August 13, 2009 10:44 PM

GeneralRe: SMTP: all are not working? Pin
Bacon Ultimate Cheeseburger13-Aug-09 16:35
Bacon Ultimate Cheeseburger13-Aug-09 16:35 
GeneralRe: SMTP: all are not working? Pin
Bacon Ultimate Cheeseburger13-Aug-09 18:45
Bacon Ultimate Cheeseburger13-Aug-09 18:45 
QuestionIntercept a WM message into a C++ class Pin
428813-Aug-09 13:10
428813-Aug-09 13:10 
AnswerRe: Intercept a WM message into a C++ class Pin
Baltoro13-Aug-09 14:55
Baltoro13-Aug-09 14:55 
AnswerRe: Intercept a WM message into a C++ class Pin
KarstenK13-Aug-09 21:13
mveKarstenK13-Aug-09 21:13 
GeneralRe: Intercept a WM message into a C++ class Pin
428814-Aug-09 4:49
428814-Aug-09 4:49 
GeneralRe: Intercept a WM message into a C++ class Pin
KarstenK16-Aug-09 20:33
mveKarstenK16-Aug-09 20:33 
GeneralRe: Intercept a WM message into a C++ class Pin
428817-Aug-09 4:49
428817-Aug-09 4:49 
AnswerRe: Intercept a WM message into a C++ class Pin
Bacon Ultimate Cheeseburger14-Aug-09 13:07
Bacon Ultimate Cheeseburger14-Aug-09 13:07 
QuestionCan I control MyApp browser extension button order in "Internet Explorer" default toolbar after installation? Pin
neocoin13-Aug-09 8:16
neocoin13-Aug-09 8:16 
QuestionCalling a COM interface from a worker thread Pin
sashoalm13-Aug-09 6:43
sashoalm13-Aug-09 6:43 
AnswerRe: Calling a COM interface from a worker thread Pin
Stuart Dootson13-Aug-09 6:51
professionalStuart Dootson13-Aug-09 6:51 
GeneralRe: Calling a COM interface from a worker thread Pin
sashoalm13-Aug-09 20:48
sashoalm13-Aug-09 20:48 
GeneralRe: Calling a COM interface from a worker thread Pin
Stuart Dootson13-Aug-09 21:07
professionalStuart Dootson13-Aug-09 21:07 
GeneralRe: Calling a COM interface from a worker thread Pin
Stuart Dootson14-Aug-09 2:08
professionalStuart Dootson14-Aug-09 2:08 
QuestionHow to log visited URLs Pin
televes13-Aug-09 5:51
televes13-Aug-09 5:51 
AnswerRe: How to log visited URLs [modified] Pin
Bacon Ultimate Cheeseburger13-Aug-09 12:12
Bacon Ultimate Cheeseburger13-Aug-09 12:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.