很抱歉,如果这看起来很愚蠢,但我的PHP知识就在“0”附近。我已经建立了一个网站,并根据需要使用相当简单的PHP联系表单。但是我仍然有一些我无法解决的问题。
例如,当我收到电子邮件时,我希望能够回复发送电子邮件的人,基本上可以回复他/她添加的电子邮件地址。现在,PHP被配置为包含我的服务器端电子邮件的“from”和“to”。我将在代码下方粘贴。每当我尝试点击“回复”时,我基本上都会回复我的服务器端电子邮件地址。
我可以通过下面粘贴的代码执行此操作吗?
另一个问题与Gmail有关。当我收到电子邮件时,所有内容都被内联,所以我得到类似的内容:“名称 - 姓名,姓氏 - 姓氏,电子邮件 - 电子邮件,消息 - 消息”。我有一个重定向放在服务器端的电子邮件,所以我也可以在Gmail地址上收到电子邮件。但是,如果我在服务器端查看电子邮件,通过webmail,格式正确,每行都在其单独的行上。
我可以在Gmail上实现这一目标吗?
这是我的PHP代码
<?php
// configure
$from = 'contact@mydomain.com';
$sendTo = 'contact@mydomain.com';
$subject = 'New message from contact form';
$fields = array('name' => 'Name', 'surname' => 'Surname', 'phone' => 'Phone', 'email' => 'Email', 'message' => 'Message'); // array variable name => Text to appear in the email
$okMessage = 'Contact form successfully submitted. Thank you, I will get back to you soon!';
$errorMessage = 'There was an error while submitting the form. Please try again later';
// let's do the sending
try
{
$emailText = "You have new message from contact form\n=============================\n";
foreach ($_POST as $key => $value) {
if (isset($fields[$key])) {
$emailText .= "$fields[$key]: $value\n";
}
}
$headers = array('Content-Type: text/html; charset="UTF-8";',
'From: ' . $from,
'Reply-To: ' . $from,
'Return-Path: ' . $from,
);
mail($sendTo, $subject, $emailText, implode("\n", $headers));
$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
}
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);
header('Content-Type: application/json');
echo $encoded;
}
else {
echo $responseArray['message'];
}
答案 0 :(得分:1)
相反,使用硬编码的“发件人”,您应该会收到用户的电子邮件并将其设置为“发件人”。
我想在您的表单中,您有一个名为email
的电子邮件字段。所以从
'From: ' . $from,
到
'From: ' . $_POST['email'],
现在标题From:
应该包含提供的用户的电子邮件。在我看来,你的代码很奇怪,但这可以解决你的问题。