如何使用表单(html)和php发送消息来发送消息?

Posted

技术标签:

【中文标题】如何使用表单(html)和php发送消息来发送消息?【英文标题】:How to send a message using form (html) and php to send message? 【发布时间】:2014-04-30 10:36:00 【问题描述】:

我正在使用 html 中的此表单代码在我的网站上制作联系表单:

<form method="post" action="contact.php">
    <p>
        <label for="name">Name</label>
        <input type="text" id="name" name="name" />
    </p>
    <p>
        <label for="email">Email</label>
        <input type="text" id="email" name="email" />
    </p>
    <p>
        <label for="message">Message</label>
        <textarea id="message" name="message" rows="6" cols="30"></textarea>
    </p>
    <p>
        <input type="submit" name="send" value="Send message" />
    </p>
</form>

这是我用来将联系表发送到我的电子邮件地址的 php 代码:

<?php
   if(isset($_POST['send'])) 
   // Prepare the email
   $to = 'someone@example.com';
   $subject = 'Message sent from website';
   $message = $_POST['message'];
   // Send it
   $sent = mail($to, $subject, $message);
   if($sent) 
   echo 'Your message has been sent successfully!';
    else 
   echo 'Sorry, your message could not send.';
   
   
?>

我无法将它发送到我的电子邮件地址。我已经让它活着尝试它,但它仍然不起作用,我不知道我做错了什么。如何让用户将电子邮件发送到我的电子邮件地址 - 将其发送到我的电子邮件地址,以便我可以在我的电子邮件中看到消息? (请帮忙)

【问题讨论】:

“不起作用”是什么意思? 您是否收到您指定的错误消息?尝试将 $to 的值更改为您的实际电子邮件地址。此外,您没有检查他们是否填写了其余字段... 【参考方案1】:

此代码 100% 有效 在 PHP 中尝试此代码。然后将其上传到您的托管站点。因为电子邮件不适用于本地。所以你需要上传它。快乐编码。!!!

    <?php 
     $to ='santoshdevnath15@gmail.com';
     $from = 'santoshdevnath15@gmail.com';
     $subject = 'Html Eamil Check';
     $message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml">
                <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>Untitled Document</title>
                </head>

                <body>
                <div style="width:400px; height:400px; background-color:#096; color:#FFF">
                <h1>Welcome to inet shopping site</h1>
                <p>
                Dear Santosh,
                We have received your Cash-On-Delivery order. We need to confirm your order by call. We will get in touch with you soon on Your order               will be processed only after confirmation.
                For the payment, please pay Rs. 4000 cash to the courier person when he delivers the product.
                "Please call us on 8882248819 to confirm after you deposit the amount."
                </div>
                </body>
                </html>';
    $headers = "From: $from\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
    if(mail($to, $subject, $message, $headers))
        echo 'ok';
    
    else
        echo 'error';
    

?>

【讨论】:

【参考方案2】:

您的代码签出。唯一(或此时可能的其他未知因素之一)我可以看到可能会影响它的是,您的mail headers 中没有From:,这可能会被忽略或发送到垃圾邮件;这是完全可能的,我以前也见过。

尝试以下添加 From: 和发送者的标题。

(在我的托管服务器上测试,并发送到收件箱)

<?php

if(isset($_POST['send'])) 
   // Prepare the email
$to = 'someone@example.com';

$name = $_POST['name'];
$mail_from = $_POST['email'];
   $subject = 'Message sent from website';
   $message = $_POST['message'];

$header = "From: $name <$mail_from>";

   // Send it
   $sent = mail($to, $subject, $message, $header);
   if($sent) 
   echo 'Your message has been sent successfully!';
    else 
   echo 'Sorry, your message could not send.';
   

?>

【讨论】:

以上是关于如何使用表单(html)和php发送消息来发送消息?的主要内容,如果未能解决你的问题,请参考以下文章

异步提交表单时如何显示 php 错误消息?

使用 PHP 和 AJAX 发送电子邮件表单

同一页面上的联系表单错误消息

使用 HTML 发送邮件 [重复]

PHP 电子邮件表单以在网页上发送消息

如何使用 twilio 从 MS Access 发送消息?