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
поля как обычные поля формы, в дополнение к их специальному значению.