Skip to content
Snippets Groups Projects
Commit 634b175f authored by rswindell's avatar rswindell
Browse files

Create "Relay" tab sheet with relay server related options, including new

authentication options.
parent 4bd302b8
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* * * *
* Copyright 2003 Rob Swindell - http://www.synchro.net/copyright.html * * Copyright 2004 Rob Swindell - http://www.synchro.net/copyright.html *
* * * *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License * * modify it under the terms of the GNU General Public License *
...@@ -98,6 +98,8 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender) ...@@ -98,6 +98,8 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender)
=!(MainForm->mail_startup.options&MAIL_OPT_NO_HOST_LOOKUP); =!(MainForm->mail_startup.options&MAIL_OPT_NO_HOST_LOOKUP);
RelayServerEdit->Text=AnsiString(MainForm->mail_startup.relay_server); RelayServerEdit->Text=AnsiString(MainForm->mail_startup.relay_server);
RelayAuthNameEdit->Text=AnsiString(MainForm->mail_startup.relay_user);
RelayAuthPassEdit->Text=AnsiString(MainForm->mail_startup.relay_pass);
SMTPPortEdit->Text=AnsiString(MainForm->mail_startup.smtp_port); SMTPPortEdit->Text=AnsiString(MainForm->mail_startup.smtp_port);
POP3PortEdit->Text=AnsiString(MainForm->mail_startup.pop3_port); POP3PortEdit->Text=AnsiString(MainForm->mail_startup.pop3_port);
RelayPortEdit->Text=AnsiString(MainForm->mail_startup.relay_port); RelayPortEdit->Text=AnsiString(MainForm->mail_startup.relay_port);
...@@ -126,6 +128,13 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender) ...@@ -126,6 +128,13 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender)
&MAIL_OPT_DEBUG_POP3; &MAIL_OPT_DEBUG_POP3;
RelayRadioButton->Checked=MainForm->mail_startup.options RelayRadioButton->Checked=MainForm->mail_startup.options
&MAIL_OPT_RELAY_TX; &MAIL_OPT_RELAY_TX;
RelayAuthPlainRadioButton->Checked=MainForm->mail_startup.options
&MAIL_OPT_RELAY_AUTH_PLAIN;
RelayAuthLoginRadioButton->Checked=MainForm->mail_startup.options
&MAIL_OPT_RELAY_AUTH_LOGIN;
RelayAuthCramMD5RadioButton->Checked=MainForm->mail_startup.options
&MAIL_OPT_RELAY_AUTH_CRAM_MD5;
#if 0 /* this is a stupid option */ #if 0 /* this is a stupid option */
UserNumberCheckBox->Checked=MainForm->mail_startup.options UserNumberCheckBox->Checked=MainForm->mail_startup.options
&MAIL_OPT_ALLOW_RX_BY_NUMBER; &MAIL_OPT_ALLOW_RX_BY_NUMBER;
...@@ -155,6 +164,7 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender) ...@@ -155,6 +164,7 @@ void __fastcall TMailCfgDlg::FormShow(TObject *Sender)
POP3EnabledCheckBoxClick(Sender); POP3EnabledCheckBoxClick(Sender);
SendMailCheckBoxClick(Sender); SendMailCheckBoxClick(Sender);
AllowRelayCheckBoxClick(Sender); AllowRelayCheckBoxClick(Sender);
RelayAuthRadioButtonClick(Sender);
PageControl->ActivePage=GeneralTabSheet; PageControl->ActivePage=GeneralTabSheet;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -201,6 +211,10 @@ void __fastcall TMailCfgDlg::OKBtnClick(TObject *Sender) ...@@ -201,6 +211,10 @@ void __fastcall TMailCfgDlg::OKBtnClick(TObject *Sender)
,DNSServerEdit->Text.c_str()); ,DNSServerEdit->Text.c_str());
SAFECOPY(MainForm->mail_startup.relay_server SAFECOPY(MainForm->mail_startup.relay_server
,RelayServerEdit->Text.c_str()); ,RelayServerEdit->Text.c_str());
SAFECOPY(MainForm->mail_startup.relay_user
,RelayAuthNameEdit->Text.c_str());
SAFECOPY(MainForm->mail_startup.relay_pass
,RelayAuthPassEdit->Text.c_str());
SAFECOPY(MainForm->mail_startup.inbound_sound SAFECOPY(MainForm->mail_startup.inbound_sound
,InboundSoundEdit->Text.c_str()); ,InboundSoundEdit->Text.c_str());
SAFECOPY(MainForm->mail_startup.outbound_sound SAFECOPY(MainForm->mail_startup.outbound_sound
...@@ -216,6 +230,13 @@ void __fastcall TMailCfgDlg::OKBtnClick(TObject *Sender) ...@@ -216,6 +230,13 @@ void __fastcall TMailCfgDlg::OKBtnClick(TObject *Sender)
MainForm->mail_startup.options|=MAIL_OPT_RELAY_TX; MainForm->mail_startup.options|=MAIL_OPT_RELAY_TX;
else else
MainForm->mail_startup.options&=~MAIL_OPT_RELAY_TX; MainForm->mail_startup.options&=~MAIL_OPT_RELAY_TX;
MainForm->mail_startup.options&=~(MAIL_OPT_RELAY_AUTH_MASK);
if(RelayAuthLoginRadioButton->Checked==true)
MainForm->mail_startup.options|=MAIL_OPT_RELAY_AUTH_LOGIN;
else if(RelayAuthPlainRadioButton->Checked==true)
MainForm->mail_startup.options|=MAIL_OPT_RELAY_AUTH_PLAIN;
else if(RelayAuthCramMD5RadioButton->Checked==true)
MainForm->mail_startup.options|=MAIL_OPT_RELAY_AUTH_CRAM_MD5;
if(DebugTXCheckBox->Checked==true) if(DebugTXCheckBox->Checked==true)
MainForm->mail_startup.options|=MAIL_OPT_DEBUG_TX; MainForm->mail_startup.options|=MAIL_OPT_DEBUG_TX;
else else
...@@ -302,11 +323,13 @@ void __fastcall TMailCfgDlg::POP3SoundButtonClick(TObject *Sender) ...@@ -302,11 +323,13 @@ void __fastcall TMailCfgDlg::POP3SoundButtonClick(TObject *Sender)
void __fastcall TMailCfgDlg::DNSRadioButtonClick(TObject *Sender) void __fastcall TMailCfgDlg::DNSRadioButtonClick(TObject *Sender)
{ {
RelayServerEdit->Enabled=RelayRadioButton->Checked; bool checked = RelayRadioButton->Checked && SendMailCheckBox->Checked;
RelayPortEdit->Enabled=RelayRadioButton->Checked; RelayTabSheet->TabVisible=checked;
RelayPortLabel->Enabled=RelayRadioButton->Checked; RelayPortEdit->Enabled=checked;
DNSServerEdit->Enabled=!RelayRadioButton->Checked; RelayPortLabel->Enabled=checked;
TcpDnsCheckBox->Enabled=!RelayRadioButton->Checked; DNSServerEdit->Enabled=!checked;
DNSServerLabel->Enabled=!checked;
TcpDnsCheckBox->Enabled=!checked;
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -334,15 +357,11 @@ void __fastcall TMailCfgDlg::SendMailCheckBoxClick(TObject *Sender) ...@@ -334,15 +357,11 @@ void __fastcall TMailCfgDlg::SendMailCheckBoxClick(TObject *Sender)
DNSServerEdit->Enabled=checked; DNSServerEdit->Enabled=checked;
TcpDnsCheckBox->Enabled=checked; TcpDnsCheckBox->Enabled=checked;
RelayRadioButton->Enabled=checked; RelayRadioButton->Enabled=checked;
RelayServerEdit->Enabled=checked;
RelayPortEdit->Enabled=checked;
RelayPortLabel->Enabled=checked;
OutboundSoundEdit->Enabled=checked; OutboundSoundEdit->Enabled=checked;
OutboundSoundLabel->Enabled=checked; OutboundSoundLabel->Enabled=checked;
OutboundSoundButton->Enabled=checked; OutboundSoundButton->Enabled=checked;
if(checked) DNSRadioButtonClick(Sender);
DNSRadioButtonClick(Sender);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -389,3 +408,14 @@ void __fastcall TMailCfgDlg::AllowRelayCheckBoxClick(TObject *Sender) ...@@ -389,3 +408,14 @@ void __fastcall TMailCfgDlg::AllowRelayCheckBoxClick(TObject *Sender)
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void __fastcall TMailCfgDlg::RelayAuthRadioButtonClick(TObject *Sender)
{
bool enabled = !RelayAuthNoneRadioButton->Checked;
RelayAuthNameEdit->Enabled=enabled;
RelayAuthPassEdit->Enabled=enabled;
RelayAuthNameLabel->Enabled=enabled;
RelayAuthPassLabel->Enabled=enabled;
}
//---------------------------------------------------------------------------
object MailCfgDlg: TMailCfgDlg object MailCfgDlg: TMailCfgDlg
Left = 841 Left = 501
Top = 501 Top = 339
BorderStyle = bsDialog BorderStyle = bsDialog
Caption = 'Mail Server Configuration' Caption = 'Mail Server Configuration'
ClientHeight = 303 ClientHeight = 303
...@@ -53,8 +53,8 @@ object MailCfgDlg: TMailCfgDlg ...@@ -53,8 +53,8 @@ object MailCfgDlg: TMailCfgDlg
Top = 4 Top = 4
Width = 342 Width = 342
Height = 245 Height = 245
ActivePage = DNSBLTabSheet ActivePage = RelayTabSheet
TabIndex = 5 TabIndex = 4
TabOrder = 3 TabOrder = 3
object GeneralTabSheet: TTabSheet object GeneralTabSheet: TTabSheet
Caption = 'General' Caption = 'General'
...@@ -367,15 +367,6 @@ object MailCfgDlg: TMailCfgDlg ...@@ -367,15 +367,6 @@ object MailCfgDlg: TMailCfgDlg
object SendMailTabSheet: TTabSheet object SendMailTabSheet: TTabSheet
Caption = 'SendMail' Caption = 'SendMail'
ImageIndex = 3 ImageIndex = 3
object RelayPortLabel: TLabel
Left = 197
Top = 172
Width = 39
Height = 26
Alignment = taRightJustify
AutoSize = False
Caption = 'Port'
end
object DeliveryAttemptsLabel: TLabel object DeliveryAttemptsLabel: TLabel
Left = 9 Left = 9
Top = 44 Top = 44
...@@ -394,15 +385,22 @@ object MailCfgDlg: TMailCfgDlg ...@@ -394,15 +385,22 @@ object MailCfgDlg: TMailCfgDlg
AutoSize = False AutoSize = False
Caption = 'Frequency' Caption = 'Frequency'
end end
object DNSServerLabel: TLabel
Left = 9
Top = 152
Width = 72
Height = 16
Caption = 'DNS Server'
end
object DNSRadioButton: TRadioButton object DNSRadioButton: TRadioButton
Left = 9 Left = 9
Top = 76 Top = 116
Width = 104 Width = 184
Height = 26 Height = 26
Hint = Hint =
'Send mail directly to addressed mail server (requires DNS server' + 'Send mail directly to addressed mail server (requires DNS server' +
' access)' ' access)'
Caption = 'DNS Server' Caption = 'Direct Mail Delivery'
Checked = True Checked = True
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -412,9 +410,9 @@ object MailCfgDlg: TMailCfgDlg ...@@ -412,9 +410,9 @@ object MailCfgDlg: TMailCfgDlg
end end
object DNSServerEdit: TEdit object DNSServerEdit: TEdit
Left = 113 Left = 113
Top = 76 Top = 148
Width = 185 Width = 185
Height = 21 Height = 24
Hint = 'Host name or IP address of your ISP'#39's DNS server' Hint = 'Host name or IP address of your ISP'#39's DNS server'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -422,7 +420,7 @@ object MailCfgDlg: TMailCfgDlg ...@@ -422,7 +420,7 @@ object MailCfgDlg: TMailCfgDlg
end end
object TcpDnsCheckBox: TCheckBox object TcpDnsCheckBox: TCheckBox
Left = 250 Left = 250
Top = 108 Top = 180
Width = 65 Width = 65
Height = 24 Height = 24
Hint = 'Use TCP packets (instead of UDP) for DNS queries' Hint = 'Use TCP packets (instead of UDP) for DNS queries'
...@@ -433,43 +431,21 @@ object MailCfgDlg: TMailCfgDlg ...@@ -433,43 +431,21 @@ object MailCfgDlg: TMailCfgDlg
end end
object RelayRadioButton: TRadioButton object RelayRadioButton: TRadioButton
Left = 9 Left = 9
Top = 140 Top = 84
Width = 104 Width = 192
Height = 26 Height = 26
Hint = 'Route all mail through an SMTP relay server' Hint = 'Route all mail through an SMTP relay server'
Caption = 'Relay Server' Caption = 'Use Relay Server'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
TabOrder = 6 TabOrder = 6
OnClick = DNSRadioButtonClick OnClick = DNSRadioButtonClick
end end
object RelayServerEdit: TEdit
Left = 113
Top = 140
Width = 185
Height = 21
Hint =
'Host name or IP address of external SMTP server (for relaying ma' +
'il)'
ParentShowHint = False
ShowHint = True
TabOrder = 7
end
object RelayPortEdit: TEdit
Left = 250
Top = 172
Width = 48
Height = 21
Hint = 'TCP port number for the SMTP relay server (default=25)'
ParentShowHint = False
ShowHint = True
TabOrder = 8
end
object DeliveryAttemptsEdit: TEdit object DeliveryAttemptsEdit: TEdit
Left = 113 Left = 113
Top = 44 Top = 44
Width = 48 Width = 48
Height = 21 Height = 24
Hint = 'Maximum number of delivery attempts' Hint = 'Maximum number of delivery attempts'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -479,7 +455,7 @@ object MailCfgDlg: TMailCfgDlg ...@@ -479,7 +455,7 @@ object MailCfgDlg: TMailCfgDlg
Left = 250 Left = 250
Top = 44 Top = 44
Width = 48 Width = 48
Height = 21 Height = 24
Hint = 'Seconds between message base rescans' Hint = 'Seconds between message base rescans'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -498,6 +474,131 @@ object MailCfgDlg: TMailCfgDlg ...@@ -498,6 +474,131 @@ object MailCfgDlg: TMailCfgDlg
OnClick = SendMailCheckBoxClick OnClick = SendMailCheckBoxClick
end end
end end
object RelayTabSheet: TTabSheet
Caption = 'Relay'
ImageIndex = 6
object RelayPortLabel: TLabel
Left = 240
Top = 12
Width = 33
Height = 26
Alignment = taRightJustify
AutoSize = False
Caption = 'Port'
end
object RelayServerLabel: TLabel
Left = 9
Top = 12
Width = 40
Height = 16
Caption = 'Server'
end
object RelayServerEdit: TEdit
Left = 65
Top = 12
Width = 168
Height = 24
Hint =
'Host name or IP address of external SMTP server (for relaying ma' +
'il)'
ParentShowHint = False
ShowHint = True
TabOrder = 0
end
object RelayPortEdit: TEdit
Left = 282
Top = 12
Width = 39
Height = 24
Hint = 'TCP port number for the SMTP relay server (default=25)'
ParentShowHint = False
ShowHint = True
TabOrder = 1
end
object RelayAuthGroupBox: TGroupBox
Left = 9
Top = 41
Width = 320
Height = 160
Caption = 'Authentication:'
TabOrder = 2
object RelayAuthNameLabel: TLabel
Left = 16
Top = 92
Width = 80
Height = 26
AutoSize = False
Caption = 'Name'
end
object RelayAuthPassLabel: TLabel
Left = 16
Top = 121
Width = 80
Height = 25
AutoSize = False
Caption = 'Password'
end
object RelayAuthNoneRadioButton: TRadioButton
Left = 16
Top = 28
Width = 113
Height = 24
Caption = 'None'
Checked = True
TabOrder = 0
TabStop = True
OnClick = RelayAuthRadioButtonClick
end
object RelayAuthPlainRadioButton: TRadioButton
Left = 169
Top = 28
Width = 113
Height = 24
Caption = 'Plain'
TabOrder = 1
OnClick = RelayAuthRadioButtonClick
end
object RelayAuthLoginRadioButton: TRadioButton
Left = 169
Top = 57
Width = 113
Height = 24
Caption = 'Login'
TabOrder = 2
OnClick = RelayAuthRadioButtonClick
end
object RelayAuthCramMD5RadioButton: TRadioButton
Left = 16
Top = 57
Width = 113
Height = 24
Caption = 'CRAM-MD5'
TabOrder = 3
OnClick = RelayAuthRadioButtonClick
end
object RelayAuthNameEdit: TEdit
Left = 105
Top = 92
Width = 185
Height = 24
Hint = 'User name to authenticate as'
ParentShowHint = False
ShowHint = True
TabOrder = 4
end
object RelayAuthPassEdit: TEdit
Left = 105
Top = 121
Width = 185
Height = 24
Hint = 'Password for authentication'
ParentShowHint = False
PasswordChar = '*'
ShowHint = True
TabOrder = 5
end
end
end
object SoundTabSheet: TTabSheet object SoundTabSheet: TTabSheet
Caption = 'Sound' Caption = 'Sound'
ImageIndex = 4 ImageIndex = 4
...@@ -529,7 +630,7 @@ object MailCfgDlg: TMailCfgDlg ...@@ -529,7 +630,7 @@ object MailCfgDlg: TMailCfgDlg
Left = 113 Left = 113
Top = 12 Top = 12
Width = 185 Width = 185
Height = 21 Height = 24
Hint = 'Sound file to play when inbound SMTP connections are accepted' Hint = 'Sound file to play when inbound SMTP connections are accepted'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -548,7 +649,7 @@ object MailCfgDlg: TMailCfgDlg ...@@ -548,7 +649,7 @@ object MailCfgDlg: TMailCfgDlg
Left = 113 Left = 113
Top = 76 Top = 76
Width = 185 Width = 185
Height = 21 Height = 24
Hint = 'Sound file to play when accepting POP3 connections' Hint = 'Sound file to play when accepting POP3 connections'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
...@@ -567,7 +668,7 @@ object MailCfgDlg: TMailCfgDlg ...@@ -567,7 +668,7 @@ object MailCfgDlg: TMailCfgDlg
Left = 113 Left = 113
Top = 44 Top = 44
Width = 185 Width = 185
Height = 21 Height = 24
Hint = 'Sound file to play when sending mail' Hint = 'Sound file to play when sending mail'
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
......
...@@ -82,9 +82,6 @@ __published: ...@@ -82,9 +82,6 @@ __published:
TEdit *DNSServerEdit; TEdit *DNSServerEdit;
TCheckBox *TcpDnsCheckBox; TCheckBox *TcpDnsCheckBox;
TRadioButton *RelayRadioButton; TRadioButton *RelayRadioButton;
TEdit *RelayServerEdit;
TEdit *RelayPortEdit;
TLabel *RelayPortLabel;
TLabel *DeliveryAttemptsLabel; TLabel *DeliveryAttemptsLabel;
TEdit *DeliveryAttemptsEdit; TEdit *DeliveryAttemptsEdit;
TLabel *RescanFreqLabel; TLabel *RescanFreqLabel;
...@@ -127,6 +124,21 @@ __published: ...@@ -127,6 +124,21 @@ __published:
TEdit *MaxMsgSizeEdit; TEdit *MaxMsgSizeEdit;
TCheckBox *AuthViaIpCheckBox; TCheckBox *AuthViaIpCheckBox;
TCheckBox *NotifyCheckBox; TCheckBox *NotifyCheckBox;
TTabSheet *RelayTabSheet;
TEdit *RelayServerEdit;
TEdit *RelayPortEdit;
TLabel *RelayPortLabel;
TLabel *DNSServerLabel;
TLabel *RelayServerLabel;
TGroupBox *RelayAuthGroupBox;
TRadioButton *RelayAuthNoneRadioButton;
TRadioButton *RelayAuthPlainRadioButton;
TRadioButton *RelayAuthLoginRadioButton;
TRadioButton *RelayAuthCramMD5RadioButton;
TLabel *RelayAuthNameLabel;
TEdit *RelayAuthNameEdit;
TLabel *RelayAuthPassLabel;
TEdit *RelayAuthPassEdit;
void __fastcall InboundSoundButtonClick(TObject *Sender); void __fastcall InboundSoundButtonClick(TObject *Sender);
void __fastcall OutboundSoundButtonClick(TObject *Sender); void __fastcall OutboundSoundButtonClick(TObject *Sender);
void __fastcall FormShow(TObject *Sender); void __fastcall FormShow(TObject *Sender);
...@@ -139,6 +151,7 @@ __published: ...@@ -139,6 +151,7 @@ __published:
void __fastcall DNSBLServersButtonClick(TObject *Sender); void __fastcall DNSBLServersButtonClick(TObject *Sender);
void __fastcall DNSBLExemptionsButtonClick(TObject *Sender); void __fastcall DNSBLExemptionsButtonClick(TObject *Sender);
void __fastcall AllowRelayCheckBoxClick(TObject *Sender); void __fastcall AllowRelayCheckBoxClick(TObject *Sender);
void __fastcall RelayAuthRadioButtonClick(TObject *Sender);
private: private:
public: public:
virtual __fastcall TMailCfgDlg(TComponent* AOwner); virtual __fastcall TMailCfgDlg(TComponent* AOwner);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment