php 如何从Mailgun API域队列中删除邮件?

5ssjco0h  于 2023-06-21  发布在  PHP
关注(0)|答案(1)|浏览(72)

我写了一个模块在PHP Laminas发送邮件通过Mailgun API。我能够发送邮件,以及列出的未决队列。我想使用message-id删除mailgun中的特定邮件。有没有人可以指导我,如果可能的话?如果是,如何进行?
我在文档方面最接近的是清除域队列,这不是我想要的。https://help.mailgun.com/hc/en-us/articles/360012487654-How-Can-I-Delete-Messages-From-the-Queue-
下面是我写的使用Mailgun发送邮件的代码。

/**
     * MailgunApiSendRequest constructor.
     *
     * @param MailgunApiModel $mailgunApiModel
     * @param MailgunApiSendResponse $mailgunApiSendResponse
     */
    public function __construct(MailgunApiModel $mailgunApiModel, MailgunApiSendResponse $mailgunApiSendResponse)
    {
        $this->mailgunApiModel = $mailgunApiModel;
        $this->mailgunApiSendResponse = $mailgunApiSendResponse;
    }

    /**
     * @return MailgunApiSendResponse
     * @throws ClientExceptionInterface
     */
    public function send(): MailgunApiSendResponse
    {
        /** @var Mailgun $mailgun */
        $mailgun = $this->getMailgunApiClient()->create();

        /** @var array[] $params */
        $params = [
            "from" => $this->getMailgunApiClient()->getFromEmail(),
            "to" => $this->getMailgunApiModel()->getEmailAddress(),
            "subject" => $this->getMailgunApiModel()->getTitle(),
            "text" => $this->getMailgunApiModel()->getContent(),
            "o:deliverytime" => Carbon::now()->adddays(3)->toRfc2822String(),
        ];

        /** @var SendResponse $sendResponse */
        $sendResponse = $mailgun->messages()->send($this->getMailgunApiClient()->getEmailDomain(), $params);

        /** @var array[] $data */
        $data = [
            "id" => $sendResponse->getId(),
            "message" => $sendResponse->getMessage()
        ];

        $this->getMailgunApiSendResponse()->setResponse($data);

        return $this->getMailgunApiSendResponse();
    }

下面是根据Mailgun日志的当前状态。

{
    "envelope": {
        "transport": "smtp",
        "sender": "Admin@sandboxf130aeded8d44db4b211ec6bb2488f14.mailgun.org",
        "targets": "gohar*****@gmail.com"
    },
    "storage": {
        "region": "us-west1",
        "env": "production",
        "key": "BAABAQYhT_85YerJ675CSDFASXxRjabYg==",
        "url": "https://storage-us-west1.api.mailgun.net/v3/domains/sandboxf130aeded8d44db4b211ec6bb2488f14.mailgun.org/messages/BAABAQYhT_85YerJ675CbouSEEXxRjabYg=="
    },
    "method": "HTTP",
    "log-level": "info",
    "recipient-domain": "gmail.com",
    "event": "accepted",
    "user-variables": {},
    "id": "984HKEiQRemVjMeFKoHyyw",
    "recipient": "gohar*****@gmail.com",
    "tags": null,
    "timestamp": 1684929274.7635095,
    "flags": {
        "is-test-mode": false,
        "is-authenticated": true
    },
    "message": {
        "size": 387,
        "headers": {
            "from": "Admin <Admin@sandboxf130aeded8d44db4b211ec6bb2488f14.mailgun.org>",
            "subject": "Live Test",
            "message-id": "20230524115434.bc162edb03872131@sandboxf130aeded8d44db4b211ec6bb2488f14.mailgun.org",
            "to": "gohar*****@gmail.com"
        },
        "scheduled-for": 1685188473
    },
    "originating-ip": "124.29.239.111"
}

"scheduled-for": 1685188473显示它将在3天后发送。

py49o6xq

py49o6xq1#

Mailgun不提供删除邮件的选项。
https://documentation.mailgun.com/en/latest/api-sending.html#retrieving-stored-messages:~:text=process%20this%20data.-,Deleting%20Stored%20Messages,-Stored%20messages%20are

相关问题