【问题标题】:PHP mail function 'from' addressPHP邮件函数'发件人'地址
【发布时间】:2012-05-31 06:05:49
【问题描述】:

我什至不确定这是否可能,但是我正在尝试做的事情如下。我有一个使用PHP 脚本生成和发送电子邮件的 HTML 表单。我想要的是从这个表单接收电子邮件到abc@xyz.com,然后我希望from 地址显示为表单中的字段之一。

我环顾四周,发现了一些关于这个site 的有用信息。我不确定sendmail_from 是否可以在这种情况下使用,或者它是否符合我的要求。

这可能吗,如果可以,怎么办?

【问题讨论】:

    标签: email php


    【解决方案1】:

    在同一站点上查看此页面(示例 2):http://www.w3schools.com/php/func_mail_mail.asp

    您必须将邮件的标题设置为包含 From 和其他内容,例如 CC 或 BCC:

    <?php
    $to = "somebody@example.com";
    $subject = "My subject";
    $txt = "Hello world!";
    $headers = "From: webmaster@example.com\r\n";
    
    mail($to,$subject,$txt,$headers);
    ?>
    

    请注意,您必须使用换行符序列"\r\n" 分隔标题。

    【讨论】:

    • 请注意,如果它是表单中的动态字段,只需将 webmaster@example.com 替换为 $variable 也可以使用此格式 $username&lt;$email&gt;
    • 我希望将官方手册包含在 PHP 的 mail() php.net/manual/en/function.mail.php 上。
    【解决方案2】:

    您不能在电子邮件标题中这样做的任何原因?

    $to      = 'hello@hello.com';
    $subject = 'my subject';
    $message = 'hello';
    $headers = 'From: '.$email_from_form. "\r\n";
    
    mail($to, $subject, $message, $headers);
    

    【讨论】:

      【解决方案3】:

      对于 php 邮件脚本,我已将其用于联系表单:

      $from = $_POST["from"];  //posted from the form.
      
      mail("me@myname.com", $subject, $message, "From:" . $from);
      

      我之前没有在我的 php 中使用过 sendmail_from,只是一个简单的变量。

      我希望这会有所帮助!

      【讨论】:

      • 您确实应该在将 $_POST["from"] 变量传递给 mail() 函数之前对其进行清理。恶意用户可以使用您的方法注入任意数量的其他标头。
      • 此外,由于From 与发送域不匹配,因此它很可能最终会出现在大多数邮件服务器系统的垃圾邮件文件夹中。我会将From 设置为服务器上的本地电子邮件,而是设置一个经过清理的Reply-To 标头。
      猜你喜欢
      • 2022-08-17
      • 2015-08-05
      • 1970-01-01
      • 2014-09-22
      • 2014-03-04
      • 1970-01-01
      • 2017-07-21
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多