На этом форуме уже спрашивали как на 2009 послать письмо с прилепрлинным файлом, но у меня не получаеться даже отправить.
| Код | if(TrueMail == true) {
TIniFile *ini2; ini2 = new TIniFile(ChangeFileExt(ExtractFilePath(Application->ExeName)+"mail.cry", ".cry" )); IdSMTP1->AuthType = satDefault; IdSMTP1->Host = ini2->ReadString("Mail","SMTP",""); IdSMTP1->Port = 25; IdSMTP1->Username = ini2->ReadString("Mail","Login",""); IdSMTP1->Password = ini2->ReadString("Mail","Password",""); delete ini2;
IdMessage1->Clear();
IdMessage1->CharSet = "windows-1251"; IdMessage1->Recipients->EMailAddresses = "*****@mail.ru"; //EMail- Кому IdMessage1->From->Name = sEdit1->Text; //От кого - будет в списке писем "от кого" IdMessage1->From->Address = mail; //EMail-От кого; IdMessage1->Subject = sEdit2->Text; //Тема письма IdMessage1->Body->Text = sRichEdit1->Text;
// аттач TIdAttachment *pAttach; TStringList *pHead = new TStringList; IdMessage1->DoCreateAttachment(pHead, pAttach); pAttach->FileName = ExtractFileName(sFilenameEdit1->Dialog->FileName); ((TIdAttachmentFile*)pAttach)->StoredPathName = sFilenameEdit1->Dialog->FileName;
if(!IdSMTP1->Connected()) IdSMTP1->Connect(); try { if(IdSMTP1->Connected()) { IdSMTP1->Send(IdMessage1); ShowMessage("Письмо отправлено успешно"); sButton1->Enabled = false; Timer1->Enabled = true; } } catch(Exception &e) { ShowMessage("Error "+e.Message); } IdSMTP1->Disconnect(); IdSMTP1->Host = ""; IdSMTP1->Port = 25; IdSMTP1->Username = ""; IdSMTP1->Password = "";
} else ShowMessage("Incorrect mail"); }
}
|
Если делать без куска который отвечает за отправку файла то все нормально, но если с ним, то при нажатии на кнопку программа сообщает об ошибке (появляеться окно с пустым сообщением и красным крестиком)
И ещё одна проблема, ни как не хочет показывать русский текст в письме, IdMessage1->CharSet = "windows-1251" - не помогает. |