|
|
1.1 ! root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */ ! 2: ! 3: /* $Id: MailCfgDlgUnit.cpp,v 1.5 2000/11/17 04:31:18 rswindell Exp $ */ ! 4: ! 5: /**************************************************************************** ! 6: * @format.tab-size 4 (Plain Text/Source Code File Header) * ! 7: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * ! 8: * * ! 9: * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html * ! 10: * * ! 11: * This program is free software; you can redistribute it and/or * ! 12: * modify it under the terms of the GNU General Public License * ! 13: * as published by the Free Software Foundation; either version 2 * ! 14: * of the License, or (at your option) any later version. * ! 15: * See the GNU General Public License for more details: gpl.txt or * ! 16: * http://www.fsf.org/copyleft/gpl.html * ! 17: * * ! 18: * Anonymous FTP access to the most recent released source is available at * ! 19: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * ! 20: * * ! 21: * Anonymous CVS access to the development source and modification history * ! 22: * is available at cvs.synchro.net:/cvsroot/sbbs, example: * ! 23: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login * ! 24: * (just hit return, no password is necessary) * ! 25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src * ! 26: * * ! 27: * For Synchronet coding style and modification guidelines, see * ! 28: * http://www.synchro.net/source.html * ! 29: * * ! 30: * You are encouraged to submit any modifications (preferably in Unix diff * ! 31: * format) via e-mail to [email protected] * ! 32: * * ! 33: * Note: If this box doesn't appear square, then you need to fix your tabs. * ! 34: ****************************************************************************/ ! 35: ! 36: //--------------------------------------------------------------------- ! 37: #include <vcl.h> ! 38: #pragma hdrstop ! 39: ! 40: #include "MainFormUnit.h" ! 41: #include "MailCfgDlgUnit.h" ! 42: #include <stdio.h> // sprintf() ! 43: #include <mmsystem.h> // sndPlaySound() ! 44: //--------------------------------------------------------------------- ! 45: #pragma resource "*.dfm" ! 46: TMailCfgDlg *MailCfgDlg; ! 47: //--------------------------------------------------------------------- ! 48: __fastcall TMailCfgDlg::TMailCfgDlg(TComponent* AOwner) ! 49: : TForm(AOwner) ! 50: { ! 51: } ! 52: //--------------------------------------------------------------------- ! 53: void __fastcall TMailCfgDlg::InboundSoundButtonClick(TObject *Sender) ! 54: { ! 55: OpenDialog->FileName=InboundSoundEdit->Text; ! 56: if(OpenDialog->Execute()==true) { ! 57: InboundSoundEdit->Text=OpenDialog->FileName; ! 58: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 59: } ! 60: } ! 61: //--------------------------------------------------------------------------- ! 62: ! 63: void __fastcall TMailCfgDlg::OutboundSoundButtonClick(TObject *Sender) ! 64: { ! 65: OpenDialog->FileName=OutboundSoundEdit->Text; ! 66: if(OpenDialog->Execute()==true) { ! 67: OutboundSoundEdit->Text=OpenDialog->FileName; ! 68: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 69: } ! 70: } ! 71: //--------------------------------------------------------------------------- ! 72: ! 73: void __fastcall TMailCfgDlg::FormShow(TObject *Sender) ! 74: { ! 75: char str[128]; ! 76: ! 77: if(MainForm->mail_startup.interface_addr==0) ! 78: NetworkInterfaceEdit->Text="<ANY>"; ! 79: else { ! 80: sprintf(str,"%d.%d.%d.%d" ! 81: ,(MainForm->mail_startup.interface_addr>>24)&0xff ! 82: ,(MainForm->mail_startup.interface_addr>>16)&0xff ! 83: ,(MainForm->mail_startup.interface_addr>>8)&0xff ! 84: ,MainForm->mail_startup.interface_addr&0xff ! 85: ); ! 86: NetworkInterfaceEdit->Text=AnsiString(str); ! 87: } ! 88: MaxClientsEdit->Text=AnsiString(MainForm->mail_startup.max_clients); ! 89: MaxInactivityEdit->Text=AnsiString(MainForm->mail_startup.max_inactivity); ! 90: ! 91: AutoStartCheckBox->Checked=MainForm->MailAutoStart; ! 92: LogFileCheckBox->Checked=MainForm->MailLogFile; ! 93: HostnameCheckBox->Checked ! 94: =!(MainForm->mail_startup.options&MAIL_OPT_NO_HOST_LOOKUP); ! 95: ! 96: RelayServerEdit->Text=AnsiString(MainForm->mail_startup.relay_server); ! 97: SMTPPortEdit->Text=AnsiString(MainForm->mail_startup.smtp_port); ! 98: POP3PortEdit->Text=AnsiString(MainForm->mail_startup.pop3_port); ! 99: RelayPortEdit->Text=AnsiString(MainForm->mail_startup.relay_port); ! 100: DNSServerEdit->Text=AnsiString(MainForm->mail_startup.dns_server); ! 101: InboundSoundEdit->Text=AnsiString(MainForm->mail_startup.inbound_sound); ! 102: OutboundSoundEdit->Text=AnsiString(MainForm->mail_startup.outbound_sound); ! 103: DeliveryAttemptsEdit->Text ! 104: =AnsiString(MainForm->mail_startup.max_delivery_attempts); ! 105: RescanFreqEdit->Text=AnsiString(MainForm->mail_startup.rescan_frequency); ! 106: ! 107: DebugTXCheckBox->Checked=MainForm->mail_startup.options ! 108: &MAIL_OPT_DEBUG_TX; ! 109: DebugHeadersCheckBox->Checked=MainForm->mail_startup.options ! 110: &MAIL_OPT_DEBUG_RX_HEADER; ! 111: POP3EnabledCheckBox->Checked=MainForm->mail_startup.options ! 112: &MAIL_OPT_ALLOW_POP3; ! 113: POP3LogCheckBox->Checked=MainForm->mail_startup.options ! 114: &MAIL_OPT_DEBUG_POP3; ! 115: RelayRadioButton->Checked=MainForm->mail_startup.options ! 116: &MAIL_OPT_RELAY_TX; ! 117: UserNumberCheckBox->Checked=MainForm->mail_startup.options ! 118: &MAIL_OPT_ALLOW_RX_BY_NUMBER; ! 119: RBLCheckBox->Checked=MainForm->mail_startup.options ! 120: &MAIL_OPT_USE_RBL; ! 121: DULCheckBox->Checked=MainForm->mail_startup.options ! 122: &MAIL_OPT_USE_DUL; ! 123: RSSCheckBox->Checked=MainForm->mail_startup.options ! 124: &MAIL_OPT_USE_RSS; ! 125: TcpDnsCheckBox->Checked=MainForm->mail_startup.options ! 126: &MAIL_OPT_USE_TCP_DNS; ! 127: SendMailCheckBox->Checked= ! 128: !(MainForm->mail_startup.options&MAIL_OPT_NO_SENDMAIL); ! 129: ! 130: DNSRadioButtonClick(Sender); ! 131: POP3EnabledCheckBoxClick(Sender); ! 132: SendMailCheckBoxClick(Sender); ! 133: PageControl->ActivePage=GeneralTabSheet; ! 134: } ! 135: //--------------------------------------------------------------------------- ! 136: ! 137: void __fastcall TMailCfgDlg::OKBtnClick(TObject *Sender) ! 138: { ! 139: char str[128],*p; ! 140: DWORD addr; ! 141: ! 142: sprintf(str,"%.*s",sizeof(str)-1 ! 143: ,NetworkInterfaceEdit->Text.c_str()); ! 144: p=str; ! 145: while(*p && *p<=' ') p++; ! 146: if(*p && isdigit(*p)) { ! 147: addr=atoi(p)<<24; ! 148: while(*p && *p!='.') p++; ! 149: if(*p=='.') p++; ! 150: addr|=atoi(p)<<16; ! 151: while(*p && *p!='.') p++; ! 152: if(*p=='.') p++; ! 153: addr|=atoi(p)<<8; ! 154: while(*p && *p!='.') p++; ! 155: if(*p=='.') p++; ! 156: addr|=atoi(p); ! 157: MainForm->mail_startup.interface_addr=addr; ! 158: } else ! 159: MainForm->mail_startup.interface_addr=0; ! 160: ! 161: MainForm->mail_startup.smtp_port=SMTPPortEdit->Text.ToIntDef(25); ! 162: MainForm->mail_startup.pop3_port=POP3PortEdit->Text.ToIntDef(110); ! 163: MainForm->mail_startup.relay_port=RelayPortEdit->Text.ToIntDef(25); ! 164: MainForm->mail_startup.max_clients=MaxClientsEdit->Text.ToIntDef(10); ! 165: MainForm->mail_startup.max_inactivity=MaxInactivityEdit->Text.ToIntDef(120); ! 166: MainForm->mail_startup.max_delivery_attempts ! 167: =DeliveryAttemptsEdit->Text.ToIntDef(10); ! 168: MainForm->mail_startup.rescan_frequency=RescanFreqEdit->Text.ToIntDef(300); ! 169: ! 170: sprintf(MainForm->mail_startup.dns_server,"%.*s" ! 171: ,sizeof(MainForm->mail_startup.dns_server)-1 ! 172: ,DNSServerEdit->Text.c_str()); ! 173: sprintf(MainForm->mail_startup.relay_server,"%.*s" ! 174: ,sizeof(MainForm->mail_startup.relay_server)-1 ! 175: ,RelayServerEdit->Text.c_str()); ! 176: sprintf(MainForm->mail_startup.inbound_sound,"%.*s" ! 177: ,sizeof(MainForm->mail_startup.inbound_sound)-1 ! 178: ,InboundSoundEdit->Text.c_str()); ! 179: sprintf(MainForm->mail_startup.outbound_sound,"%.*s" ! 180: ,sizeof(MainForm->mail_startup.outbound_sound)-1 ! 181: ,OutboundSoundEdit->Text.c_str()); ! 182: sprintf(MainForm->mail_startup.pop3_sound,"%.*s" ! 183: ,sizeof(MainForm->mail_startup.pop3_sound)-1 ! 184: ,POP3SoundEdit->Text.c_str()); ! 185: ! 186: if(RelayRadioButton->Checked==true) ! 187: MainForm->mail_startup.options|=MAIL_OPT_RELAY_TX; ! 188: else ! 189: MainForm->mail_startup.options&=~MAIL_OPT_RELAY_TX; ! 190: if(DebugTXCheckBox->Checked==true) ! 191: MainForm->mail_startup.options|=MAIL_OPT_DEBUG_TX; ! 192: else ! 193: MainForm->mail_startup.options&=~MAIL_OPT_DEBUG_TX; ! 194: if(DebugHeadersCheckBox->Checked==true) ! 195: MainForm->mail_startup.options|=MAIL_OPT_DEBUG_RX_HEADER; ! 196: else ! 197: MainForm->mail_startup.options&=~MAIL_OPT_DEBUG_RX_HEADER; ! 198: if(POP3EnabledCheckBox->Checked==true) ! 199: MainForm->mail_startup.options|=MAIL_OPT_ALLOW_POP3; ! 200: else ! 201: MainForm->mail_startup.options&=~MAIL_OPT_ALLOW_POP3; ! 202: if(POP3LogCheckBox->Checked==true) ! 203: MainForm->mail_startup.options|=MAIL_OPT_DEBUG_POP3; ! 204: else ! 205: MainForm->mail_startup.options&=~MAIL_OPT_DEBUG_POP3; ! 206: if(UserNumberCheckBox->Checked==true) ! 207: MainForm->mail_startup.options|=MAIL_OPT_ALLOW_RX_BY_NUMBER; ! 208: else ! 209: MainForm->mail_startup.options&=~MAIL_OPT_ALLOW_RX_BY_NUMBER; ! 210: if(RBLCheckBox->Checked==true) ! 211: MainForm->mail_startup.options|=MAIL_OPT_USE_RBL; ! 212: else ! 213: MainForm->mail_startup.options&=~MAIL_OPT_USE_RBL; ! 214: if(DULCheckBox->Checked==true) ! 215: MainForm->mail_startup.options|=MAIL_OPT_USE_DUL; ! 216: else ! 217: MainForm->mail_startup.options&=~MAIL_OPT_USE_DUL; ! 218: if(RSSCheckBox->Checked==true) ! 219: MainForm->mail_startup.options|=MAIL_OPT_USE_RSS; ! 220: else ! 221: MainForm->mail_startup.options&=~MAIL_OPT_USE_RSS; ! 222: if(HostnameCheckBox->Checked==false) ! 223: MainForm->mail_startup.options|=MAIL_OPT_NO_HOST_LOOKUP; ! 224: else ! 225: MainForm->mail_startup.options&=~MAIL_OPT_NO_HOST_LOOKUP; ! 226: if(TcpDnsCheckBox->Checked==true) ! 227: MainForm->mail_startup.options|=MAIL_OPT_USE_TCP_DNS; ! 228: else ! 229: MainForm->mail_startup.options&=~MAIL_OPT_USE_TCP_DNS; ! 230: if(SendMailCheckBox->Checked==false) ! 231: MainForm->mail_startup.options|=MAIL_OPT_NO_SENDMAIL; ! 232: else ! 233: MainForm->mail_startup.options&=~MAIL_OPT_NO_SENDMAIL; ! 234: ! 235: MainForm->MailAutoStart=AutoStartCheckBox->Checked; ! 236: MainForm->MailLogFile=LogFileCheckBox->Checked; ! 237: ! 238: MainForm->SaveSettings(Sender); ! 239: } ! 240: //--------------------------------------------------------------------------- ! 241: ! 242: ! 243: void __fastcall TMailCfgDlg::POP3SoundButtonClick(TObject *Sender) ! 244: { ! 245: OpenDialog->FileName=POP3SoundEdit->Text; ! 246: if(OpenDialog->Execute()==true) { ! 247: POP3SoundEdit->Text=OpenDialog->FileName; ! 248: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 249: } ! 250: } ! 251: //--------------------------------------------------------------------------- ! 252: ! 253: void __fastcall TMailCfgDlg::DNSRadioButtonClick(TObject *Sender) ! 254: { ! 255: RelayServerEdit->Enabled=RelayRadioButton->Checked; ! 256: RelayPortEdit->Enabled=RelayRadioButton->Checked; ! 257: RelayPortLabel->Enabled=RelayRadioButton->Checked; ! 258: DNSServerEdit->Enabled=!RelayRadioButton->Checked; ! 259: TcpDnsCheckBox->Enabled=!RelayRadioButton->Checked; ! 260: } ! 261: //--------------------------------------------------------------------------- ! 262: ! 263: void __fastcall TMailCfgDlg::POP3EnabledCheckBoxClick(TObject *Sender) ! 264: { ! 265: POP3PortEdit->Enabled=POP3EnabledCheckBox->Checked; ! 266: POP3PortLabel->Enabled=POP3EnabledCheckBox->Checked; ! 267: POP3SoundEdit->Enabled=POP3EnabledCheckBox->Checked; ! 268: POP3SoundLabel->Enabled=POP3EnabledCheckBox->Checked; ! 269: POP3SoundButton->Enabled=POP3EnabledCheckBox->Checked; ! 270: POP3LogCheckBox->Enabled=POP3EnabledCheckBox->Checked; ! 271: } ! 272: //--------------------------------------------------------------------------- ! 273: ! 274: ! 275: void __fastcall TMailCfgDlg::SendMailCheckBoxClick(TObject *Sender) ! 276: { ! 277: bool checked=SendMailCheckBox->Checked; ! 278: ! 279: DeliveryAttemptsEdit->Enabled=checked; ! 280: DeliveryAttemptsLabel->Enabled=checked; ! 281: RescanFreqEdit->Enabled=checked; ! 282: RescanFreqLabel->Enabled=checked; ! 283: DNSRadioButton->Enabled=checked; ! 284: DNSServerEdit->Enabled=checked; ! 285: TcpDnsCheckBox->Enabled=checked; ! 286: RelayRadioButton->Enabled=checked; ! 287: RelayServerEdit->Enabled=checked; ! 288: RelayPortEdit->Enabled=checked; ! 289: RelayPortLabel->Enabled=checked; ! 290: OutboundSoundEdit->Enabled=checked; ! 291: OutboundSoundLabel->Enabled=checked; ! 292: OutboundSoundButton->Enabled=checked; ! 293: ! 294: if(checked) ! 295: DNSRadioButtonClick(Sender); ! 296: } ! 297: //--------------------------------------------------------------------------- ! 298:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.