【问题标题】:mail function in php not sending headersphp中的邮件功能不发送标头
【发布时间】:2015-06-05 06:47:12
【问题描述】:

我带了一个共享服务器,并获得了一点存储空间。当我运行我的网站时,邮件功能完美运行。已将带有主题和消息的邮件发送给所有收件人。但是发送的邮件提到“发件人:”。我包含的标题不起作用。 我想用我的标题发送 Eg:Form: mymail@mysite.com 。我该怎么做?

<?php
$output="";
if(isset($_POST['submit']) && !empty($_POST['message']))
{
    $sub=$_POST['subject'];
    $msg=$_POST['message'];
    $sql = "select email from login where status='client'";
    $query = mysqli_query($con,$sql);

    $to=array();

    while($row = mysqli_fetch_array($query))
    {
        $to[] = $row['email'];
        $parts = implode(',',$to);
        $headers = 'From: mymail@mysiet.com;';
        $headers .= 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $subject = $sub;
        $content = $msg;    
    }

    if(mail($parts,$subject,$content,$headers))
    {
        $output="mail sent";
    }
    else
    {
        $output="Error in connection, Mail could not be sent. Please try again";
    }

}
?>

【问题讨论】:

    标签: php mysqli


    【解决方案1】:

    您需要手动指定标头,这是我使用的功能,它可以精美地交付给几乎每个提供商。你想要的标题是From:Reply-To:,我还建议X-Mailer 遵循这里看到的内容,我几年前也通过 SO 找到了它。

    <?php
        $to      = "user@anotherdomain.com";                                
        $headers = 'From: My Name <email@domain.com.au>' . "\r\n" .
                   'Reply-To: My Name <email2@domain.com.au>' . "\r\n" .
                   'X-Mailer: PHP/' . phpversion() . "\r\n" .
                   'Content-type: text/html; charset=iso-8859-1';
        $subject = "My subject line here";
        $message = 'Message HTML and Content Here.';
    
        if(mail($to, $subject, $message, $headers)){
            // Success Here
        }else{
            // Failed Here
        }
    ?>
    

    我不是 100% 肯定它会为您工作,因为我在专用机器上,话虽如此 - 我确实在多个域上使用它,并且从未在邮件设置方面弄乱我的 Apache 或 php 配置。

    详细了解 PHP 中的 Mail 函数:http://php.net/manual/en/function.mail.php

    【讨论】:

    • BCC 只是 headers 变量中的另一行,除了 'From: ' 你将输入 'Bcc: ' - 据我了解,这些是区分大小写的。 CC 是一样的'Cc: '(我已经更新了我的答案,包括一个指向有关此事的 PHP 文档的链接。
    【解决方案2】:

    你可以试试下面的代码,只是从 php.net 翻录的

    // Additional headers
    $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
    $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
    $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    

    离题但很好用PHPMailer

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2016-05-22
      • 2023-03-10
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多