PHP表单自动发送电子邮件

时间:2015-10-17 17:16:25

标签: php html

我创建了一个HTML表单,其输入名为' name' ,'电子邮件' ,' mobile' ,'消息'。

在我用过的HTML中;

<form action='form_script.php' method='post'>

将(在提交时)发送到我的form_script.php,我的PHP 应该执行。

form_script.php

然后我创建了这个PHP脚本,它应该从表单中获取输入并发送电子邮件到&#39; enquiries@firelineband.co.uk'。

问题是,电子邮件没有发送。我已经多次检查过我的PHP脚本,但我似乎无法找到任何问题,这就是为什么我在这里发布了第二个意见。

if(isset($_POST['submit'])){
$to = "enquiries@firelineband"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$name = $_POST['name'];
$mobile = $_POST['mobile']; 
$subject = $_POST['subject'];
$subject2 = "Copy of your form submission";
$message = "Name: " .$name . "\n\n mobile number: " . $mobile . ".\n\n Message:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $name . "\n\n" . $_POST['message'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
// You can also use header('Location: thank_you.php'); to redirect to another page.
}

提前感谢您的时间。 山姆

HTML表单

<table style='width:100%'> 
            <form action='form_script.php' method='post'>
            <tr> 
                <th> <input type='text' required placeholder='Name' name='name' /> </th> <th> <input type='text' required placeholder='Email' name='email' /> </th> 
            </tr> 

            <tr> 
                <th> <input type='text' required placeholder='Mobile' name='mobile' /> </th> <th> <input type='text' required placeholder='Subject' name='subject'  /> </th> 
            </tr>
            <tr> 
                <th colspan='2'><textarea required placeholder='Message' name='message' ></textarea></th> 
            </tr>
            <tr> 
                <th><input id='send_form' type='submit' /> </th>
            </tr>
            </form>
        </table> 

3 个答案:

答案 0 :(得分:0)

如果您尝试在localhost上发送电子邮件,则应在php.ini中设置电子邮件设置,具体取决于您的ISP。

这是我国(克罗地亚)的isp名称(T-Com):

ini_set("SMTP", "mail.t-com.hr");
ini_set("smtp_port", "25");

$message = "";

if(mail('aaaa@gmail.com', 'title', $message, "From: bbbb@gmail.com"))
{
    echo 'sent succesfull';
}

但它取决于isp和国家。

PS.ini_set“(”SMTP“,”mail.t-com.hr“);”和“ini_set(”smtp_port“,”25“);”可以从代码中调用或在php.ini中设置

答案 1 :(得分:0)

为什么使用标准的vanilla php mail函数()。而是切换到Mailgun或phpmailer,您可以自动加载到您的代码中并以这种方式发送邮件。它比mail()函数更快更可靠。以及使用mailgun;您可以通过该网站查看日志,看看您的邮件是否已发送100%。祝你好运

答案 2 :(得分:0)

您没有任何名称='submit'的输入。 在表单中添加

<input type="hidden" name="submit">

由于您的代码显示if(isset($_POST['submit']))但未设置$_POST['submit']