【问题标题】:Sending and Receiving mail through php contact form [duplicate]通过php联系表发送和接收邮件[重复]
【发布时间】:2014-10-20 12:02:57
【问题描述】:

最近,我购买了一个域名和主机。我还创建了一个包含联系表格的网页。我希望当用户在联系表单的 textarea 中写一些东西并点击 submit 然后该消息被发送到我的 gmail 帐户,这样我也可以回复这些消息。我也使用此脚本来执行此操作,但它不起作用。

这是 sendemail.php 文件

<?php
    header('Content-type: application/json');
    $status = array(
        'type'=>'success',
        'message'=>'Thank you for contact us. As early as possible  we will contact you '
    );

    $name = @trim(stripslashes($_POST['name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $subject = @trim(stripslashes($_POST['subject'])); 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = $email;
    $email_to = 'raunakhajela@gmail.com';//replace with your email

    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

    echo json_encode($status);
    die;

这是我在 index.php

中的联系表单代码
<div class="contact" id="contact">
            <div class="container-3x">

                <div class="block-header"> <!-- Blocks Header -->
                    <h2 class="title">Contact Us</h2>
                </div>

                <div class="block-content"> <!-- Blocks Content -->

                    <form action="sendemailphp" method="post" class="trigger-form-animate">
                        <input type="text" value="" id="name" name="name" placeholder="Name *" />
                        <input type="text" value="" id="email" name="email" placeholder="Email *" />
                        <input type="text" value="" id="website" name="website" placeholder="Website *" />
                        <textarea type="text" value="" id="message" name="message" rows="3" placeholder="Your Message *" ></textarea>
                        <div class="clr"></div>
                        <button>Submit Message</button>
                    </form>

                </div>

            </div>

        </div>  

我也试过“http://www.mybloggertricks.com/2012/06/connect-your-website-email-address-to.html”这个教程,但它不起作用。无法在 gmail 添加另一个帐户窗口中找到“通过 Gmail 发送(更易于设置)”这个选项。

我该怎么做?请帮忙

【问题讨论】:

  • 首先使用@ 而不是checking for them 抑制错误对您的事业没有帮助。
  • 是的,删除@ 并同时使用error_reporting(E_ALL);display_errors(1); 还有var_dump($success); 是真是假?
  • 伙计们,我对 php 了解不多,刚刚从 shapebootstrap.net/item/evento-free-music-event-template 下载了 eventto 模板,其中包含 sendemail.php 文件。我刚刚将电子邮件地址替换为我的电子邮件,在我创建的另一个模板上使用了这个文件并将文件上传到我的服务器上,但是当我尝试提交消息时,它只显示“成功”,但在我的 gmail 帐户上没有收到任何消息。
  • 这个action="sendemailphp" 你确定不是action="sendemail.php"?在这样做时,它对我有用。已测试 {"type":"success","message":"Thank you for contact us. As early as possible we will contact you "}
  • sry 伙计们,这只是写这个问题时的语法错误,但是是的,我已经尝试过 action="sendemail.php"。然而它并没有成功......

标签: php forms email contact


【解决方案1】:

您没有命名subject 表单元素,这可以解释为什么邮件失败并且很可能会被发送到垃圾邮件。

例如:&lt;input type="text" name="subject"&gt;。添加替换之一。

但是,您需要确保使用条件语句填写此内容
请参阅下面的示例)。

$subject = @trim(stripslashes($_POST['subject'])); 

$subject = "Form submission";

您也可以将其添加到您的表单中:

<input type="hidden" name="subject" value="Form submission">

无论是这个还是我上面概述的都可以。

如果缺少“主题”(您的代码中显然缺少该主题),许多电子邮件客户端要么将邮件发送到垃圾邮件,要么完全拒绝它。

检查主题是否已填写示例:

if(isset($_POST['subject']) && !empty($_POST['subject'])){

// do someting

}

【讨论】:

  • sry bro ds z 不工作... :-(
  • @RaunakHajela 在您打开&lt;?php 标记error_reporting(E_ALL); ini_set('display_errors', 1); 后将错误报告添加到文件顶部,看看它是否产生任何结果。另外将$success = @mail($email_to, $subject, $body, 'From: &lt;'.$email_from.'&gt;'); 更改为$success = mail($email_to, $subject, $body, 'From: &lt;'.$email_from.'&gt;'); 删除@ 符号。同时删除代码中的所有 @ 符号。
  • 我必须从姓名、电子邮件和消息中删除@作为主题吗??
  • 在 ds 情况下也不起作用。我的 gmail 帐户还没有收到任何电子邮件
  • @RaunakHajela 我会联系您的托管公司,确保您可以使用mail()。另外,请检查您的垃圾邮件框。我已经测试了您的代码,没有任何问题,并顺利发送到我的 Gmail 帐户。也许您的主机在黑名单上,现在很难说它为什么会失败。
【解决方案2】:

试试这个,两个都行

 <?php
  $to = "usermailid@gmail.com";
    $subject = "Welcome to";
    $message = " Hi $username,<br /><br />
    Thank you for signing up with us.<br />

    Thanks <br />";
    // Always set content-type when sending HTML email
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
    // More headers
    $headers .= 'From: <yourmailid@gmail.com>' . "\r\n";
    $mail=mail($to,$subject,$message,$headers);
    if($mail)   
    {
    $to = "admin@gmail.com";

    $subject = "Following Customer Signed Up";
    $message = " $username,Customer is signed up with us,<br /><br />
    Customer Details:<br />First Name:$firstname<br/>Last Name:$lastname<br/>Email:$email<br/>
    Phone:$phone<br/>Zip Code:$zip<br/>Message:$message_cust<br/><br/><br/>
    Thanks <br />";
    // Always set content-type when sending HTML email
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
    // More headers
    $headers .= 'From: <yourmailid@gmail.com>' . "\r\n";
    $mail=mail($to,$subject,$message,$headers);
    }
     ?>

【讨论】:

  • sry bro ds z 也无法正常工作... n 顺便问一下 test@gmail.com 和 admi@gmail.com 是什么??
  • 老兄,我已经给出了这些邮件 ID 用于示例目的。您应该在测试代码时使用有效的电子邮件 ID 更改它们。
  • 兄弟,我的意思是 test@gmail.com 是写在文本字段中的电子邮件还是一些随机电子邮件..??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 2019-04-24
  • 2014-03-27
相关资源
最近更新 更多