Formmail - показывать имя и адрес электронной почты в случае успешного ответа

Я использую formmail.pl для обработки формы, которую я использую на своем сайте. Есть несколько полей, которые отправляются в сценарий, включая имя, адрес электронной почты, телефон и текст в текстовой области.

В этом случае при успешной отправке данные телефона и текстовой области печатаются правильно, но не печатаются имя и адрес электронной почты, которые были введены. В сообщении электронной почты он отправляет имя и адрес электронной почты в заголовке "от", а на странице успеха отображаются только данные телефона и текстовой области, отображаемые в теле сообщения.

Я хотел бы показать все данные в обоих случаях, однако я не могу найти раздел кода, который обрабатывает это. Я бы опубликовал скрипт formmail.pl, за исключением более чем 3000 строк кода, так что я просто опубликую места, которые я считаю ответственными, и, надеюсь, кто-нибудь может указать мне правильное направление. Я довольно новичок в Perl, и я немного перегружен чтением и пониманием сценария такого размера.

sub success_page {
  my ($self, $date) = @_;

  if ($self->{FormConfig}{'redirect'}) {
    print $self->cgi_object->redirect( $self->{FormConfig}{'redirect'} );
  }
  elsif ( $self->{CFG}{'no_content'}) {
    print $self->cgi_object->header(Status => 204);
  }
  else {
    $self->output_cgi_html_header;
    $self->success_page_html_preamble($date);
    $self->success_page_fields;
    $self->success_page_footer;
  }
}

sub success_page_html_preamble {
  my ($self, $date) = @_;

  my $title = $self->escape_html( $self->{FormConfig}{'title'} || 'Success' );
  my $torecipient = 'to ' . $self->escape_html($self->{FormConfig}{'recipient'});
  $torecipient = '' if $self->{Hide_Recipient};
  my $attr = $self->body_attributes;

  print <<END;
    <head>
    <title>$title</title>
  END

  $self->output_style_element;

  print <<END;
    <link type="text/css" href="css/stylesheet.css" rel="stylesheet" /></script>
    </head>

<body>

    <p>Below is what you submitted $torecipient on $date</p>
  END
}

sub success_page_fields {
  my ($self) = @_;

  foreach my $f (@{ $self->{Field_Order} }) {
    my $val = (defined $self->{Form}{$f} ? $self->{Form}{$f} : '');
    $self->success_page_field( $self->escape_html($f), $self->escape_html($val) );
  }
}


sub success_page_field {
  my ($self, $name, $value) = @_;
  print "<p><b>$name:</b> $value</p>\n";
}

Хорошо, это становится немного длинным. Этот материал в основном предназначен для страницы успеха и не имеет ничего общего со стороной электронной почты, но, возможно, если кто-то найдет там то, что мне нужно, я могу применить его и к разделу электронной почты.

Если потребуется дополнительная информация, дайте мне знать

Заранее спасибо

1 ответ

Решение

Я на самом деле не использовал NMS FormMail самостоятельно, но, глядя на источник, кажется, что вы должны быть в состоянии достичь чего-то похожего на то, что вы хотите, установив следующие дополнительные параметры конфигурации:

$more_config{include_config_email} = 1;
$more_config{include_config_realname} = 1;

Это должно заставить FormMail.pl обрабатывать email а также realname поля как обычные поля формы, в дополнение к их специальному значению.

Другие вопросы по тегам