PHP电子邮件数据馈送问题

PHP电子邮件数据馈送问题,php,Php,您好,我正在尝试从供应商处获取数据源。我设置了一个页面,给了他们一个URL,并告诉他们httppost csv数据 现在我的页面是这样的,这样我就可以看到我得到的数据是什么样子的: $feedData = file_get_contents("php://input"); mail('myemail@gmail.com','data feed from vendor',$feedData); 他们说他们给我发了一些测试数据,我检查了我的电子邮件,我收到了电子邮件,但它是空白的。我不确定是我做

您好,我正在尝试从供应商处获取数据源。我设置了一个页面,给了他们一个URL,并告诉他们httppost csv数据

现在我的页面是这样的,这样我就可以看到我得到的数据是什么样子的:

$feedData = file_get_contents("php://input");

mail('myemail@gmail.com','data feed from vendor',$feedData);
他们说他们给我发了一些测试数据,我检查了我的电子邮件,我收到了电子邮件,但它是空白的。我不确定是我做错了什么,还是他们做错了

我下一步该怎么解决这个问题


谢谢

检查您使用的是哪种
$feedData
,以及它是否符合标准。我的猜测是不是。http post数据应该是$_post['var']

试试这个:

mail('myemail@gmail.com','data feed from vendor',var_export($_POST, true));

您是否正在上载文件并使用php://input?自从php://input 不适用于多部分/表单数据

如果您自己托管接收部分,您也可以尝试通过过滤和读取http数据包。

http POST数据应存在于
$\u POST
中。您应该首先检查此超全局是否包含任何数据。否则,数据将无法正确发布到您的URL

通过将数据通过电子邮件发送给自己进行测试是正确的,但是这对于非字符串类型可能会有问题。您需要确定
$feedData
是一个字符串并包含数据

将var_dump()与输出缓冲相结合时,检查变量的类型和内容非常简单。尝试:

ob_start();
var_dump($_POST);
$testDump = ob_get_contents();
ob_end_clean();

mail('user@example.com', 'data feed from vendor', $testDump);
测试过程:

  • 将任何内容发布到您的URL,并检查生成的电子邮件是否包含正确的数据。

    如果生成的电子邮件与您预期的不一致,则错误在于您的代码。使用代码,直到测试电子邮件包含您发布的数据所期望的内容

  • 请供应商发布他们的数据

    检查生成的电子邮件,看看它是否符合您的预期。如果没有,请与供应商核实他们发送的数据的性质——也许您的理解或期望是错误的。重复此操作,直到您在测试电子邮件中获得正确的内容

  • 通过检查测试电子邮件的内容,您可以确定$u POST中与您的需求相关的元素,根据需要提取这些元素并继续开发


    当您的测试电子邮件确实包含您所期望的内容时,请注意$\u POST内容,以便您可以构造一个相同的POST请求,以便在继续开发时使用。

    您好,我也尝试了此方法,并让他们再试一次。我的电子邮件又空了。他们只有一个URL,他们应该给我发一个URL的提要。我认为他们在做一个服务器到服务器的帖子,但我和他们之间存在某种沟通障碍。感谢请详细说明他们“发送”的方式和内容以及您如何接收。非常感谢您提供的非常详细的答案,我将尝试一下!