使用gmail api进行可恢复上传时,我的电子邮件中缺少文件

时间:2016-03-24 02:15:55

标签: api email upload attachment gmail-api

我想得到一些帮助,因为我现在有点迷失了。 我正在尝试通过可恢复上传来发送附件和我的电子邮件。但是当我在收件箱中查看我的电子邮件时,我看不到任何文件。所以我可能忘记了一些事情。

这是我的代码。所以如果有人看到了某些东西^^

$send_data = 'From: <FROM_EMAIL>' . "\n";
$send_data = 'To: <TO_EMAIL>' . "\n";
$send_data = 'Subject: <SUBJECT>' . "\n";
$send_data = '' . "\n";
$send_data = '<MY MESSAGE>' . "\n";

$send_data= rtrim(strtr(base64_encode($send_data), '+/', '-_'), '=');

$msg = new \Google_Service_Gmail_Mesage();
$msg->setRaw($send_data);

$this->client->setDefer(true);
$request = $this->service->users_messages->send('me', $msg, array('uploadType' => 'resumable'));

$chunkSizeBytes = 1 * 1024 * 1024;
$media = new  \Google_Http_MediaFileUpload(
    $this->client,
    $request,
    'message/rfc822',
    null,
    true,
    $chunkSizeBytes
);
$media->setFileSize(filesize(TEST_FILE));

$status = false;
    $handle = fopen(TEST_FILE, "rb");
    $i = 0;
    while (!$status && !feof($handle)) {
        $chunk = fread($handle, $chunkSizeBytes);
        $status = $media->nextChunk($chunk);
    }
    $result = false;
    if($status != false) {
        $result = $status;
    }
    fclose($handle);
$this->client->setDefer(false);

由于

1 个答案:

答案 0 :(得分:0)

我对gmail api了解不多,但我觉得setRaw()需要你编写完整的电子邮件(包括附件)而不是“body”。