PHP Postmark为生成的文件中的foreach()提供的参数无效

时间:2015-10-20 14:33:13

标签: php arrays postmark

第一次提问,所以对我很轻松,如果你还需要其他任何东西,请问

对于求职面试,我需要使用PHP和Postmark创建一个小型邮件应用程序。 这个ui很难看,但它不应该很漂亮,我的HTML布局技巧已经被证明了。所以它只是我需要的PHP功能。

那么,就我的实际问题而言: 我使用以下代码

填充数组
$message = array(
    //'To' => filter_input(INPUT_POST, 'To'),
    //'From' => filter_input(INPUT_POST, 'From'),
    //'Cc' => filter_input(INPUT_POST, 'Cc'),
    //'Bcc' => filter_input(INPUT_POST, 'Bcc'),
    //'Subject' => filter_input(INPUT_POST, 'Subject'),
    //'TextBody' => filter_input(INPUT_POST, 'TextBody')
    'To' => "roderikmasure@gmail.com",
    'From' => "roderik@masure.org",
    'Cc' => "mistermorgoth666@gmail.com",
    'Subject' => "Test",
    'TextBody' => "Dit is een testmail, ik hoop dat het nu eindelijk werkt."
);

$client = new PostmarkClient("<API TOKEN>");

$sendResult = $client->sendEmailBatch($message);
我认为,非常简单,应该没问题。 尽管如此,我仍然遇到同样的错误:

Warning: Invalid argument supplied for foreach() in /srv/www/sites/roderik/vendor/wildbit/postmark-php/src/Postmark/PostmarkClient.php on line 136 Warning: Invalid argument supplied for foreach() in /srv/www/sites/roderik/vendor/wildbit/postmark-php/src/Postmark/PostmarkClient.php on line 136 Warning: Invalid argument supplied for foreach() in /srv/www/sites/roderik/vendor/wildbit/postmark-php/src/Postmark/PostmarkClient.php on line 136 Warning: Invalid argument supplied for foreach() in /srv/www/sites/roderik/vendor/wildbit/postmark-php/src/Postmark/PostmarkClient.php on line 136 Warning: Invalid argument supplied for foreach() in /srv/www/sites/roderik/vendor/wildbit/postmark-php/src/Postmark/PostmarkClient.php on line 136 Parse error: syntax error, unexpected T_USE, expecting T_FUNCTION in /srv/www/sites/roderik/vendor/guzzlehttp/guzzle/src/Client.php on line 20

我已多次检查第136行的代码,我不知道是什么原因导致错误。

这里是第136行的代码(第二行是136):

foreach ($emailBatch as $key => $email) {
        foreach ($email as $emailIdx => $emailValue) {
            if (strtolower($emailIdx) == 'headers') {
                $email[$emailIdx] = $this->fixHeaders($emailValue);
            }
        }
        array_push($final, $email);
    }

因此,似乎错误是在邮戳的自动生成的文件中 但我不知道如何解决它。

你们有没有遇到这个问题并找到了解决办法? 如果你这样做,如果你可以帮助我会很棒

Git Repository

Actual app (ftp server)

非常感谢

编辑 - 注意到ftp服务器运行PHP 5.3.3,我尝试将其更新为5.4。似乎大多数问题与此有关。

1 个答案:

答案 0 :(得分:2)

$message = array(
    array(
        //'To' => filter_input(INPUT_POST, 'To'),
        //'From' => filter_input(INPUT_POST, 'From'),
        //'Cc' => filter_input(INPUT_POST, 'Cc'),
        //'Bcc' => filter_input(INPUT_POST, 'Bcc'),
        //'Subject' => filter_input(INPUT_POST, 'Subject'),
        //'TextBody' => filter_input(INPUT_POST, 'TextBody')
        'To' => "roderikmasure@gmail.com",
        'From' => "roderik@masure.org",
        'Cc' => "mistermorgoth666@gmail.com",
        'Subject' => "Test",
        'TextBody' => "Dit is een testmail, ik hoop dat het nu eindelijk werkt."
    )
);

$client = new PostmarkClient("f92ee11a-3de9-48ff-801e-1b6efc9afcdf");

$sendResult = $client->sendEmailBatch($message);

它希望它是多维的。毕竟这是一批。