通过SMTP发送PHP表单

时间:2019-01-28 22:11:51

标签: php smtp contact-form

我找到了一些与查询类似的问题,但没有一个完全符合我的情况。

我在网站的联系表单上使用了基本的mail()PHP设置,但事实证明,此设置已在我的托管服务器上被阻止,以避免垃圾邮件/滥用。

网络托管服务商建议使用SMTP作为一种解决方法,但是他们链接到的教程似乎并未为我提供可行的解决方案!

这是我的HTML:

<form action="php/mail.php" method="POST">
<p class="form-field-title">Name</p>
<input class="contact-field focus-hide" type="text" id="name" name="name" required autocomplete="off">
<p class="form-field-title">Email Address</p>
<input class="contact-field focus-hide" type="email" id="email" name="email" required autocomplete="off">
<p class="form-field-title">Phone</p>
<input class="contact-field focus-hide" type="text" id="number" name="number" autocomplete="off">
<p class="form-field-title">Message</p>
<textarea class="contact-field focus-hide" id="message" name="message" data-gramm_editor="false" required autocomplete="off"></textarea>
<input class="contact-button" type="submit" value="Send Message">
</form>

这是我原始的(非SMTP)mail.php代码:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];

$formcontent="Name: $name \nEmail: $email \nPhone Number: $number     \nMessage: $message";
$recipient = "email@email.com";
$subject = "Website Contact Form Enquiry";
$mailheader = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

header('Location: ../thanks.html');
exit();
?>

我有用于虚拟主机的电子邮件服务器详细信息,但是我发现的SMTP解决方案都不适合我!

有人可以帮助我吗?我已经看到了有关使用PEAR的一些信息,但是他们的网站似乎无法正常工作...?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的表格在电子邮件中,我认为您无法发布数据(也许我错了)。但是您可以使用get方法将其发送到脚本中。

<form action="php/mail.php" method="GET">
</form>

然后更新您的php:

<?php
$name = $_GET['name'];
$email = $_GET['email'];
$number = $_GET['number'];
$message = $_GET['message'];

$formcontent="Name: $name \nEmail: $email \nPhone Number: $number     \nMessage: $message";
$recipient = "email@email.com";
$subject = "Website Contact Form Enquiry";
$mailheader = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

header('Location: ../thanks.html');
exit();
?>

它应该完成工作。