Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在通过PHP发送电子邮件时遇到问题?_Php_Html_Email - Fatal编程技术网

为什么我在通过PHP发送电子邮件时遇到问题?

为什么我在通过PHP发送电子邮件时遇到问题?,php,html,email,Php,Html,Email,可能重复: 我对PHP不熟悉,但我开始看到它对于非常简单的事情的价值,我希望您能解释一下为什么下面的代码不起作用。换句话说,我从未收到过电子邮件。第一个代码块是服务器端的PHP代码,第二个代码块是提交给该PHP代码的表单 我目前在Azure云中托管此网站,因此它在Microsoft的服务器上运行,并且我已经验证了PHPV5.3正在运行 PHP代码 表单提交到PHP 名字* 姓* 电子邮件地址* 电话号码 评论* 您不需要调用ini\u集(“sendmail\u from”,“$emai

可能重复:

我对PHP不熟悉,但我开始看到它对于非常简单的事情的价值,我希望您能解释一下为什么下面的代码不起作用。换句话说,我从未收到过电子邮件。第一个代码块是服务器端的PHP代码,第二个代码块是提交给该PHP代码的表单

我目前在Azure云中托管此网站,因此它在Microsoft的服务器上运行,并且我已经验证了PHPV5.3正在运行

PHP代码

表单提交到PHP

名字*
姓*
电子邮件地址*
电话号码
评论*
  • 您不需要调用
    ini\u集(“sendmail\u from”,“$email\u from”)当您在标题中设置发件人电子邮件地址时
  • 您已呼叫
    @mail
    。除非您使用的是尚未调用的Atmail库,否则这将不起作用。您应该删除@以使用默认的PHP邮件函数
  • 如果sendmail仍然无法工作,请确认服务器上的sendmail配置正确

  • 首先尝试发送简单的电子邮件。检查你是否得到了它

    如下

    <?php
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
    
    mail($to, $subject, $message, $headers);
    ?>
    
    
    

    如果有效,请将内容类型text/html添加到代码中,并选中,
    @mail
    调用不会打印出任何错误。当您删除“at”标志时会出现什么错误?@imm-从
    @mail
    调用中删除
    @
    不会产生任何错误。执行到成功HTML的页面,该HTML位于PHP部分末尾下方。我是否需要添加另一段代码来获取您要查找的数据?这个问题已经在StackOverflow上被问过好几次了。Microsoft Azure不附带邮件服务器。您需要将PHP配置为使用第三方smtp服务器。示例:您是否能够让mail()发送任何内容?也许您的服务不支持开箱即用,您需要自己在本地设置一些东西,或者使用其他解决方案。@imm-我最后使用语句
    ini\u set('display\u errors',true)
    得到了错误。显然,@John在他的回答中证实了这一点,Azure不支持本地的邮件服务器,所以我必须使用某种变通方法才能让它正常工作。谢谢
    @mail
    不是一个函数<代码>邮件
    是一个函数,
    @
    是错误抑制操作符。
    <form name="contactform" method="post" action="send_form_email.php">
      <table width="450px">
        <tr>
          <td valign="top">
            <label for="first_name">First Name *</label>
          </td>
          <td valign="top">
            <input  type="text" name="first_name" maxlength="50" size="30">
          </td>
        </tr>
        <tr>
          <td valign="top">
            <label for="last_name">Last Name *</label>
          </td>
          <td valign="top">
            <input  type="text" name="last_name" maxlength="50" size="30">
          </td>
        </tr>
        <tr>
          <td valign="top">
            <label for="email">Email Address *</label>
          </td>
          <td valign="top">
            <input  type="text" name="email" maxlength="80" size="30">
          </td>
        </tr>
        <tr>
          <td valign="top">
            <label for="telephone">Telephone Number</label>
          </td>
          <td valign="top">
            <input  type="text" name="telephone" maxlength="30" size="30">
          </td>
        </tr>
        <tr>
          <td valign="top">
            <label for="comments">Comments *</label>
          </td>
          <td valign="top">
            <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
          </td>
        </tr>
        <tr>
          <td colspan="2" style="text-align:center">
            <input type="submit" value="Submit" style="float: left;">
          </td>
        </tr>
      </table>
    </form>
    
    <?php
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
    
    mail($to, $subject, $message, $headers);
    ?>