我正在为我的网站创建一个联系表单,我遇到了一些问题。它在没有使用位置时工作正常,我收到了一封电子邮件,但在使用位置时,我在输入表单时没有收到电子邮件。
如何重定向并同时收到电子邮件?
HTML:
<div class="contact-form">
<div class="contact-form-container">
<form novalidate action="index.php" method="POST">
<label id="label-0">Position</label>
<select name="position_form">
<option value="collaboration_partner">Samarbetspartner</option>
<option value="youth_organization">Ungdomsorginisation</option>
<option value="young_enterprise">Ung Företagsamhet</option>
<option value="work_group">Arbetsgrupp</option>
<option value="school">Skola</option>
<option value="volunteer_trainee">Volontär/Praktikant</option>
<option value="charity">Välgörenhet</option>
<option value="sponsor">Sponsor</option>
<option value="other">Annat</option>
</select>
<label id="label-1">Namn</label>
<input name="name" placeholder="Namn" type="text">
<label id="label-2">Email Adress</label>
<input name="email" type="text" placeholder="Email Adress">
<label id="label-3">Meddelande</label>
<textarea name="message" placeholder="Meddelande"></textarea>
<input id="submit" name="submit" type="submit" value="SKICKA">
</form>
</div>
</div>
PHP:
<?php
$to = "random@protonmail.com";
$subject = "Kontakta Oss - Senaste Meddelande";
$name = $_POST['name'];
$email = $_POST["email"];
$position_form = $_POST["position_form"];
$message = $_POST["message"];
$body = <<<EMAIL
Namn:
$name
Email:
$email
Position:
$position_form
Meddelande:
$message
EMAIL;
$header = "from: kontakt@example.com";
header('Location: http://example.com/redirecthere.php');
exit();
if($_POST){
mail($to, $subject, $body, $header);
}
?>
答案 0 :(得分:0)
在mail
之后调用header('Location
函数(实际上,它永远不会被调用)。即使您删除header
它也不会发送邮件,因为在您获得exit
之前调用了if
函数。
删除exit
并将header
移至文件末尾
答案 1 :(得分:-1)
尝试以这种方式更改您的php文件:
<?php
$to = "random@protonmail.com";
$subject = "Kontakta Oss - Senaste Meddelande";
$name = $_POST['name'];
$email = $_POST["email"];
$position_form = $_POST["position_form"];
$message = $_POST["message"];
$body = <<<EMAIL
Namn:
$name
Email:
$email
Position:
$position_form
Meddelande:
$message
EMAIL;
$header = "from: kontakt@example.com";
if($_POST){
mail($to, $subject, $body, $header);
header('Location: http://example.com/redirecthere.php');
exit();
}
?>
我希望这对你有所帮助。
顺便提一下,我建议您查找Mailgun,Sendgrid等交易电子邮件服务。