📄 mailsetup.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MailSetup.h"
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMailCountDlg *MailCountDlg;
//---------------------------------------------------------------------------
__fastcall TMailCountDlg::TMailCountDlg(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::OKButtonClick(TObject *Sender)
{
bool CanInsert=true;
TIniFile *ini;
if(CountName->Text==""||MailAdd->Text==""||UserName->Text==""||
ReturnAdd->Text==""||Pop3Name->Text==""||SmtpName->Text==""||
GetPort->Text==""||SendPort->Text==""||LoginName->Text==""||
LoginPwd->Text=="")
ShowMessage("请填写完整信息");
else
{
CountProper->Clear();
CountProper->Add(CountName->Text);
CountProper->Add(Pop3Name->Text);
CountProper->Add(SmtpName->Text);
CountProper->Add(GetPort->Text);
CountProper->Add(SendPort->Text);
CountProper->Add(LoginName->Text);
CountProper->Add(LoginPwd->Text);
if(ListBox1->Items->Count>0)
{
for(int i=0;i<ListBox1->Items->Count;i++)
if(CountProper->Strings[0]==ListBox1->Items->Strings[i])
{
ShowMessage("信箱名已经存在,请重新命名信箱");
CanInsert=false;
break;
}
if(CanInsert)
{
ListBox1->Items->Add(CountProper->Strings[0]);
TStrings* CountSection;
CountSection=new TStringList();
CountSection->LoadFromFile(".\\count.ini");
CountSection->Add("["+CountProper->Strings[0]+"]");
CountSection->SaveToFile(".\\count.ini");
ini=new TIniFile(".\\count.ini");
ini->WriteString(CountProper->Strings[0],"Pop3服务器",CountProper->Strings[1]);
ini->WriteString(CountProper->Strings[0],"Smtp服务器",CountProper->Strings[2]);
ini->WriteString(CountProper->Strings[0],"接收邮件端口",CountProper->Strings[3]);
ini->WriteString(CountProper->Strings[0],"发送邮件端口",CountProper->Strings[4]);
ini->WriteString(CountProper->Strings[0],"用户登录帐号",CountProper->Strings[5]);
ini->WriteString(CountProper->Strings[0],"用户密码",CountProper->Strings[6]);
ini->WriteString(CountProper->Strings[0],"邮件地址",MailAdd->Text);
ini->WriteString(CountProper->Strings[0],"用户姓名",UserName->Text);
ini->WriteString(CountProper->Strings[0],"回复地址",ReturnAdd->Text);
ini->UpdateFile();
delete ini;
delete CountSection;
}
}
else
ListBox1->Items->Add(CountProper->Strings[0]);
}
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::FormCreate(TObject *Sender)
{
TIniFile *ini;
CountProper=new TStringList();
if(access(".\\count.ini",00))
FileCreate(".\\count.ini");
ini=new TIniFile(".\\count.ini");
ini->ReadSections(CountProper);
for(int i=0;i<CountProper->Count;i++)
ListBox1->Items->Add(CountProper->Strings[i]);
for(int i=0;i<ListBox1->Items->Count;i++)
{
if(ListBox1->Items->Strings[i]==MainForm->DefaultCounter.CountName)
{
ListBox1->Items->Move(i,0);
break;
}
}
delete ini;
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::UseDefaultPortClick(TObject *Sender)
{
GetPort->Enabled=!UseDefaultPort->Checked;
SendPort->Enabled=!UseDefaultPort->Checked;
}
//过滤键值的函数-----------------------------------------------------------
AnsiString TMailCountDlg::StrFilter(AnsiString source)
{
char *dest;
AnsiString returnvalue;
dest=(char *)malloc(50);
dest=AnsiStrPos(source.c_str(),"=")+1;
returnvalue=dest;
return returnvalue;
}
void __fastcall TMailCountDlg::ListBox1Click(TObject *Sender)
{
TStrings *str;
TIniFile *ini;
str=new TStringList();
ini=new TIniFile(".\\count.ini");
ini->ReadSectionValues(ListBox1->Items->Strings[ListBox1->ItemIndex],str);
CountName->Text=ListBox1->Items->Strings[ListBox1->ItemIndex];
try
{
Pop3Name->Text=StrFilter(str->Strings[0]);
SmtpName->Text=StrFilter(str->Strings[1]);
GetPort->Text=StrFilter(str->Strings[2]);
SendPort->Text=StrFilter(str->Strings[3]);
LoginName->Text=StrFilter(str->Strings[4]);
LoginPwd->Text=StrFilter(str->Strings[5]);
MailAdd->Text=StrFilter(str->Strings[6]);
UserName->Text=StrFilter(str->Strings[7]);
ReturnAdd->Text=StrFilter(str->Strings[8]);
}
catch(...)
{
ShowMessage("该帐户没有附加信息");
}
if(CountName->Text!=MainForm->DefaultCounter.CountName)
IsDefaultCounter->Checked=false;
else
IsDefaultCounter->Checked=true;
delete ini;
delete str;
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::CANCELButtonClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::IsDefaultCounterClick(TObject *Sender)
{
TIniFile *ini;
TStrings *DefCounter;
if(IsDefaultCounter->Checked)
{
DefCounter=new TStringList();
if(access(".\\Default.ini",00))
{
DefCounter->Add("[Default]");
DefCounter->SaveToFile(".\\Default.ini");
}
ini=new TIniFile(".\\Default.ini");
if(ListBox1->ItemIndex!=-1)
{
MainForm->DefaultCounter.CountName=CountName->Text;
MainForm->DefaultCounter.Pop3Name=Pop3Name->Text;
MainForm->DefaultCounter.SmtpName=SmtpName->Text;
MainForm->DefaultCounter.GetPort=GetPort->Text;
MainForm->DefaultCounter.SendPort=SendPort->Text;
MainForm->DefaultCounter.LoginName=LoginName->Text;
MainForm->DefaultCounter.LoginPwd=LoginPwd->Text;
MainForm->DefaultCounter.MailAdd=MailAdd->Text;
MainForm->DefaultCounter.UserName=UserName->Text;
MainForm->DefaultCounter.ReturnAdd=ReturnAdd->Text;
ini->WriteString("Default","缺省帐户",CountName->Text);
}
else
ShowMessage("请选择一个帐号");
delete ini;
delete DefCounter;
}
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::DeleteButtonClick(TObject *Sender)
{
if(ListBox1->ItemIndex!=-1)
{
DeleteCounter=ListBox1->Items->Strings[ListBox1->ItemIndex];
if(DeleteCounter==MainForm->DefaultCounter.CountName)
ShowMessage("这是缺省帐号,不能删除");
else
{
if(Application->MessageBox("确实要删除该帐号吗","警告",MB_OKCANCEL)==IDOK)
{
ListBox1->Items->Delete(ListBox1->ItemIndex);
CounterDeleted(DeleteCounter);
}
}
}
}
//---------------------------------------------------------------------------
void TMailCountDlg::CounterDeleted(AnsiString DeletedCounter)
{
TIniFile *ini;
if(DeletedCounter==MainForm->DefaultCounter.CountName)
{
ini=new TIniFile(".\\Default.ini");
ini->EraseSection("Default");
ini->UpdateFile();
IsDefaultCounter->Checked=false;
delete ini;
}
ini=new TIniFile(".\\count.ini");
ini->EraseSection(DeleteCounter);
ini->UpdateFile();
ClearEdit();
delete ini;
}
void TMailCountDlg::ClearEdit()
{
CountName->Text="";
MailAdd->Text="";
UserName->Text="";
ReturnAdd->Text="";
Pop3Name->Text="";
SmtpName->Text="";
LoginName->Text="";
LoginPwd->Text="";
}
void __fastcall TMailCountDlg::FormDestroy(TObject *Sender)
{
delete CountProper;
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::NewButtonClick(TObject *Sender)
{
ClearEdit();
CountName->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked)
{
TimeOutEdit->Enabled=true;
MainForm->DefaultCounter.TimeOutLimit=TimeOutEdit->Text.ToInt()*60000;
}
}
//---------------------------------------------------------------------------
void __fastcall TMailCountDlg::TimeOutEditChange(TObject *Sender)
{
MainForm->DefaultCounter.TimeOutLimit=TimeOutEdit->Text.ToInt()*60000;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -