skleiłem kod z kilku tutoriali. chcę żeby program wysyłał mi na maila wpisane dane w polach. nie wiem gdzie jest błąd, w kodzie źródłowym czy m konfiguracji smtp, może jakiś firewall? czy problem gdzieś w csmtp? problem w tym, że maile nie dochodzą. program kompiluje się, uruchamia, niby wszystko ok ale mail nie z tekstem nie dochodzi...
może ktoś rzucić okiem? na pewno zajmie wam to krótką chwilę;)
#define _WINSOCKAPI_
#include "main.h"
#include "CSmtp.h"
HINSTANCE hInstance;
/////////////HWND////////////////////
HWND hLogo;
HWND hwnd;
HWND imie_static;
HWND imie_textbox;
HWND wzrost_static;
HWND wzrost_textbox;
HWND A_static;
HWND A_textbox;
HWND button;
/////////////////////////////////////
void main::createWindow()
{
classname = TEXT("123456765432ASASDFGHGFDSWQA");
WNDCLASSEX wc;
wc.cbSize = sizeof( WNDCLASSEX );
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 0 );
wc.lpszMenuName = NULL;
wc.lpszClassName = classname;
wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
RegisterClassEx(&wc);
int x = GetSystemMetrics(SM_CXSCREEN);
int y = GetSystemMetrics(SM_CYSCREEN);
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,classname,TEXT("imie i wzrost"),WS_SYSMENU|
WS_MINIMIZEBOX|WS_CAPTION|WS_POPUP,(x-300)/2,(y-360)/2,
300,360,0,0,hInstance,0);
ShowWindow(hwnd,SW_SHOW);
}
void main::createButton()
{
HFONT hNormalFont =( HFONT ) GetStockObject( DEFAULT_GUI_FONT );
//SendMessage(hLogo,WM_SETFONT,(WPARAM)hNormalFont,0);
HFONT hFont;
hFont = CreateFont(22,0,0,0,0,0,0,0,EASTEUROPE_CHARSET,0,0,0,0,TEXT("Calibri"));
hLogo = CreateWindowEx(0,TEXT("STATIC"),TEXT("wpisz dane i wyślij "),WS_CHILD|WS_VISIBLE|
SS_LEFT,60,20,200,200,hwnd, 0,hInstance,0);
SendMessage(hLogo,WM_SETFONT,WPARAM(hFont),TRUE);
imie_static = CreateWindowEx(0,TEXT("STATIC"),TEXT("Imie:"),WS_CHILD|WS_VISIBLE|
SS_LEFT,5,100,40,20,hwnd,0,hInstance,0);
SendMessage(imie_static,WM_SETFONT,(WPARAM)hNormalFont,0);
imie_textbox = CreateWindowEx(WS_EX_CLIENTEDGE,TEXT("EDIT"),0,WS_CHILD|WS_VISIBLE
|ES_AUTOHSCROLL,40,97,240,20,hwnd,0,hInstance,0);
SendMessage(imie_textbox,WM_SETFONT,(WPARAM)hNormalFont,0);
wzrost_static = CreateWindowEx(0,TEXT("STATIC"),TEXT("Wzrost:"),WS_CHILD|WS_VISIBLE|SS_LEFT,
5,160,40,20,hwnd,0,hInstance,0);
SendMessage(wzrost_static,WM_SETFONT,(WPARAM)hNormalFont,0);
wzrost_textbox = CreateWindowEx(WS_EX_CLIENTEDGE,TEXT("EDIT"),0,WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL,
40,157,240,20,hwnd,0,hInstance,0);
SendMessage(wzrost_textbox,WM_SETFONT,(WPARAM)hNormalFont,0);
button = CreateWindowEx(0,TEXT("BUTTON"),TEXT("Wyślij"),WS_CHILD|
WS_VISIBLE,100,250,100,50,hwnd,0,hInstance,0);
SendMessage(button,WM_SETFONT,(WPARAM)hNormalFont,0);
}
LRESULT CALLBACK main::WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
if((HWND)lParam==button)
{
HANDLE hThread = CreateThread(0,0,&ThreadProc,0,0,0);
MessageBox(hwnd,TEXT("Gotowe! Dziekuje"),TEXT(""),MB_OK|MB_ICONINFORMATION );
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return 0;
}
DWORD WINAPI main::ThreadProc(LPVOID p)
{
int imie_length = GetWindowTextLength(imie_textbox);
CHAR * imie = new CHAR[imie_length+1];
GetWindowTextA(imie_textbox,imie,imie_length+1);
int wzrost_length = GetWindowTextLength(wzrost_textbox);
CHAR * wzrost = new CHAR[wzrost_length+1];
GetWindowTextA(wzrost_textbox,wzrost,wzrost_length+1);
int A_length = GetWindowTextLength(A_textbox+1);
CHAR * A = new CHAR[A_length+1];
GetWindowTextA(A_textbox,A,A_length);
try
{
CSmtp mail;
mail.SetSMTPServer("smtp.O2.pl",587);
mail.SetSecurityType(USE_SSL);
mail.SetLogin("[email protected]");
mail.SetPassword("mojehaslo");
mail.SetSenderName("mojmail");
mail.SetSenderMail("[email protected]");
mail.SetReplyTo("[email protected]");
mail.SetSubject("imie i wzrost");
mail.AddRecipient("[email protected]");
mail.SetXPriority(XPRIORITY_NORMAL);
mail.SetXMailer("MAIL ");
CHAR computername1[MAX_COMPUTERNAME_LENGTH + 1];
DWORD Size = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerNameA(computername1,&Size);
mail.AddMsgLine("Computer Name: ");
mail.AddMsgLine(computername1);
mail.AddMsgLine("Imie: ");
mail.AddMsgLine(imie);
mail.AddMsgLine("Wzrost: ");
mail.AddMsgLine(wzrost);
mail.Send();
}
catch(ECSmtp e)
{
}
ExitThread(0);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
main m;
m.createWindow();
m.createButton();
while( GetMessage(&m.msg,0,0,0))
{
TranslateMessage(&m.msg);
DispatchMessage(&m.msg);
}
return 0;
}
może problem jest tutaj?
1>main.cpp(138): warning C4101: 'e' : unreferenced local variable
czyli catch(ECSmtp e)??