Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
C++

Wysyłanie E-Mail'a

c++

  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 10.02.2012 22:09

Jest to prosta funkcja mojego autorstwa pozwalająca na wysłanie emaila ( napisana gdyż nie mogłem znaleźć odpowiadającej mi biblioteki/funkcji do c++ )

int SendMail(char* MailFrom, char* MailTo, char* Subject, char* Message, char* Login, char* Password, char* SMTPServer, int SMTPPort)
{
	WSAData wsaData;
	char chBuffer[4096];

	if(WSAStartup(MAKEWORD(2,0), & wsaData ) != 0)
		return -1;

	SOCKET socClient = socket(AF_INET, SOCK_STREAM, 0);
	SOCKADDR_IN sin;

	sin.sin_port = htons(SMTPPort);
	sin.sin_addr.s_addr = inet_addr(SMTPServer);
	sin.sin_family = AF_INET;

	if(connect(socClient, (sockaddr*)&sin, sizeof(sin)) == INVALID_SOCKET)
	{
			closesocket(socClient);
			WSACleanup();
			return -1;
	}

	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	send(socClient, "HELO\r\n", strlen("HELO\r\n"), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	char chTemp[256];
	gethostname(chTemp, 255);

	wsprintf(chBuffer, "EHLO %s\r\n", chTemp);
	send(socClient, chBuffer, strlen(chBuffer), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	send(socClient, "AUTH LOGIN\r\n", strlen("AUTH LOGIN\r\n"), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	wsprintf(chBuffer, "%s\r\n", Login);
	send(socClient, chBuffer, strlen(chBuffer), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	wsprintf(chBuffer, "%s\r\n", Password);
	send(socClient, chBuffer, strlen(chBuffer), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	wsprintf(chBuffer, "MAIL FROM: <%s>\r\n", MailFrom);
	send(socClient, chBuffer, strlen(chBuffer), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	wsprintf(chBuffer, "RCPT TO: <%s>\r\n", MailTo);
	send(socClient, chBuffer, strlen(chBuffer), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	send(socClient, "DATA\r\n", strlen("DATA\r\n"), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	wsprintf(chBuffer, "From: %s\r\n", MailFrom);
	send(socClient, chBuffer, strlen(chBuffer), 0);

	wsprintf(chBuffer, "To: %s\r\n", MailTo);
	send(socClient, chBuffer, strlen(chBuffer), 0);

	wsprintf(chBuffer, "Subject: %s\r\n", Subject);
	send(socClient, chBuffer, strlen(chBuffer), 0);

	wsprintf(chBuffer, "%s\r\n", Message);
	send(socClient, chBuffer, strlen(chBuffer), 0);

	send(socClient, "\r\n.\r\n", strlen("\r\n.\r\n"), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	send(socClient, "QUIT\r\n", strlen("QUIT\r\n"), 0);
	recv(socClient, chBuffer, sizeof(chBuffer), 0);

	closesocket(socClient);
	WSACleanup();

	return 0;
}

Wymagana zaincludowana biblioteka winsock2 oraz
#pragma comment(lib, "Ws2_32.lib")

Przykładowy kod:
Spoiler

  • +
  • -
  • 1

marwit-0.png






Również z jednym lub większą ilością słów kluczowych: c++

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych