【问题标题】:Form submission and mail send表单提交和邮件发送
【发布时间】:2013-05-08 04:49:06
【问题描述】:

我已经制作了一个通过 php 注册的表单。表单有提交者电子邮件地址字段。我希望在表单提交后,表单内容将通过提交者电子邮件地址和管理员电子邮件地址发送给表单提交者和管理员。提交者电子邮件地址将从提交者电子邮件地址字段中获取。管理员电子邮件地址是固定的。 对于提交者 headers="来自:no-reply@eschool.com" 消息体和它一样

对于管理员 headers="来自:$email" 消息体和它一样

我尝试过这样做:

HTML代码:

<form action="action.php" method="post">
    <table>
        <tr>
            <td>Name</td>
            <td>:</td>
            <td><input type="text" name="name" width="400" /></td>
        </tr>
        <tr>
            <td>Address</td>
            <td>:</td>
            <td><input type="text" name="address" width="400" /></td>
        </tr>
        <tr>
            <td>Email</td>
            <td>:</td>
            <td><input type="text" name="email" width="400" /></td>
        </tr>
        <tr>
            <td>Password</td>
            <td rowspan="2">&nbsp;</td>
            <td>
                <p><input type="text" name="pass" width="400" /></p>
                <p>&nbsp;</p>
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="insert" value="Insert" /></td>
        </tr>
    </table>

    <input type="submit" value="submit" />
</form>

action.php

$name    = $_POST["name"];
$address = $_POST["address"];
$email   = $_POST["email"];

$password = $_POST['pass'];
$subject  = "Thank you for your registration.";
$admin    = "info@editor.com";

$to = $email . "," . $admin;

$email_message .= "Name: ". $name."\n";
$email_message .= "Address: ".$address."\n";
$email_message .= "Email: ".$email."\n";
$email_message .= "password: ".$password."\n";

$headers  = "MIME-Version: 1.0" . "\n";
$headers .= "Content-type:text/plain;charset=UTF-8;" . "\n";
$headers .= "content-Transfer-encoding: 8bit" ."\n";
$headers .= "From: no-reply@eschool.com ". "\n";

mail($to, $subject, $email_message, $headers);

谢谢

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您的代码很完美,您面临的问题是什么,请写下您的问题。 为方便起见,在 action.php 中进行以下更改:

    <?php
       $name    = $_POST["name"];
       $address = $_POST["address"];
       $email   = $_POST["email"];
       $password = $_POST['pass'];
       $subject  = "Thank you for your registration.";
       $admin    = "info@editor.com";
       //$to = $email  $admin;
       $email_message = '';
    
       $email_message .= "Name: ". $name."\n";
    
       $email_message .= "Address: ".$address."\n";
    
       $email_message .= "Email: ".$email."\n";
    
       $email_message .= "password: ".$password."\n";
    
    
       $headers1  = 'MIME-Version: 1.0' . "\r\n";
       $headers1 .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";   
       $headers1 .= "From: no-reply@eschool.com ". "\n";
    
       $headers2  = 'MIME-Version: 1.0' . "\r\n";
       $headers2 .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";   
       $headers2 .= "From: ". $email . "\n"; 
    
       if(@mail( $email, $subject, $email_message  , $headers1 )) {
         @mail( $admin, $subject, $email_message  , $headers2 )          
        echo "Mail Sent.";
       } else {
        echo "Mail Not Sent.";
       }
    ?>   
    

    【讨论】:

    • 问题是:我希望如果一个提交表单,那么他/她将收到来自 no-reply@eschool.com 的电子邮件,而管理员将收到来自提交者电子邮件地址的电子邮件。
    • 我上面的代码可以正常工作并解决您的问题。请投票将解决您的问题。
    【解决方案2】:

    您可以简单地制作两个不同版本的标头并执行两次mail(...)

    <?php
    
        $name    = $_POST["name"];
        $address = $_POST["address"];
        $email   = $_POST["email"];
    
        $password = $_POST['pass'];
        $subject  = "Thank you for your registration.";
        $admin    = "info@editor.com";
    
    
        $email_message = "Name: ".$name."\n";
        $email_message .= "Address: ".$address."\n";
        $email_message .= "Email: ".$email."\n";
        $email_message .= "password: ".$password."\n";
    
        $headers  = "MIME-Version: 1.0\n";
        $headers .= "Content-type:text/plain;charset=UTF-8;\n";
        $headers .= "content-Transfer-encoding: 8bit\n";
    
        $poster_headers = $headers . "From: no-reply@eschool.com\n";
        $admin_headers = $headers . "From: ".$email."\n";
    
        mail( $admin, $subject, $email_message, $admin_headers );
        mail( $email, $subject, $email_message, $poster_headers );
    ?>
    

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多