@@ -239,7 +239,7 @@ sub do_edit {
239
239
my (@suppress_cc );
240
240
my ($auto_8bit_encoding );
241
241
my ($compose_encoding );
242
- my $target_xfer_encoding = ' auto ' ;
242
+ my ( $target_xfer_encoding ) ;
243
243
244
244
my ($debug_net_smtp ) = 0; # Net::SMTP, see send_message()
245
245
@@ -258,28 +258,28 @@ sub do_edit {
258
258
);
259
259
260
260
my %config_settings = (
261
- " smtpserver" => \$smtp_server ,
262
- " smtpserverport" => \$smtp_server_port ,
263
- " smtpserveroption" => \@smtp_server_options ,
264
- " smtpuser" => \$smtp_authuser ,
265
- " smtppass" => \$smtp_authpass ,
266
- " smtpdomain" => \$smtp_domain ,
267
- " smtpauth" => \$smtp_auth ,
268
- " smtpbatchsize" => \$batch_size ,
269
- " smtprelogindelay" => \$relogin_delay ,
270
- " to" => \@initial_to ,
271
- " tocmd" => \$to_cmd ,
272
- " cc" => \@initial_cc ,
273
- " cccmd" => \$cc_cmd ,
274
- " aliasfiletype" => \$aliasfiletype ,
275
- " bcc" => \@bcclist ,
276
- " suppresscc" => \@suppress_cc ,
277
- " envelopesender" => \$envelope_sender ,
278
- " confirm" => \$confirm ,
279
- " from" => \$sender ,
280
- " assume8bitencoding" => \$auto_8bit_encoding ,
281
- " composeencoding" => \$compose_encoding ,
282
- " transferencoding" => \$target_xfer_encoding ,
261
+ " smtpserver" => [ \$smtp_server ] ,
262
+ " smtpserverport" => [ \$smtp_server_port ] ,
263
+ " smtpserveroption" => [ \@smtp_server_options ] ,
264
+ " smtpuser" => [ \$smtp_authuser ] ,
265
+ " smtppass" => [ \$smtp_authpass ] ,
266
+ " smtpdomain" => [ \$smtp_domain ] ,
267
+ " smtpauth" => [ \$smtp_auth ] ,
268
+ " smtpbatchsize" => [ \$batch_size ] ,
269
+ " smtprelogindelay" => [ \$relogin_delay ] ,
270
+ " to" => [ \@initial_to ] ,
271
+ " tocmd" => [ \$to_cmd ] ,
272
+ " cc" => [ \@initial_cc ] ,
273
+ " cccmd" => [ \$cc_cmd ] ,
274
+ " aliasfiletype" => [ \$aliasfiletype ] ,
275
+ " bcc" => [ \@bcclist ] ,
276
+ " suppresscc" => [ \@suppress_cc ] ,
277
+ " envelopesender" => [ \$envelope_sender ] ,
278
+ " confirm" => [ \$confirm ] ,
279
+ " from" => [ \$sender ] ,
280
+ " assume8bitencoding" => [ \$auto_8bit_encoding ] ,
281
+ " composeencoding" => [ \$compose_encoding ] ,
282
+ " transferencoding" => [ \$target_xfer_encoding , ' auto ' ] ,
283
283
);
284
284
285
285
my %config_path_settings = (
@@ -423,7 +423,7 @@ sub read_config {
423
423
}
424
424
425
425
foreach my $setting (keys %config_settings ) {
426
- my $target = $config_settings {$setting };
426
+ my $target = $config_settings {$setting }-> [0] ;
427
427
next if $setting eq " to" and defined $no_to ;
428
428
next if $setting eq " cc" and defined $no_cc ;
429
429
next if $setting eq " bcc" and defined $no_bcc ;
@@ -458,6 +458,16 @@ sub read_config {
458
458
${$setting -> [0]} = $setting -> [1] unless (defined (${$setting -> [0]}));
459
459
}
460
460
461
+ # fall back to builtin defaults
462
+ while (my ($name , $setting ) = each %config_settings ) {
463
+ next unless @$setting == 2;
464
+
465
+ my ($target , $default ) = @$setting ;
466
+ if (ref ($target ) eq " SCALAR" ) {
467
+ $$target = $default unless defined $$target ;
468
+ } # elsif ... for other types later.
469
+ }
470
+
461
471
# 'default' encryption is none -- this only prevents a warning
462
472
$smtp_encryption = ' ' unless (defined $smtp_encryption );
463
473
0 commit comments