Laravel Mailable附件等待期

时间:2018-02-07 15:26:53

标签: laravel email laravel-5 controller attachment

我之前没有遇到过这个问题,但只有Laravel Mailable取得了成功,所以我现在没有理由怀疑它。在我的应用程序中,我有一个记录的附件部分。在该部分中,我向用户提供了选择他们希望邮寄到电子邮件的附件的选项。

我的问题是,截至目前,使用以下当前控制器,有时发送过程可能需要相当长的时间(此时,一个示例仅在3.67分钟后发送!!)。我理解这可能部分是因为它的大小,但我关注这个时间,并希望看看是否有后端备选方案(例如队列)。

此时此处是我的控制器,用于发送给mailable的命令:

public function attachmentsEmail(Request $request){
        $shipment = Shipment::findOrFail($request->shipmentID);
        $attachment = Shipment_Attachment::findOrFail($request->attachmentID);
        $storagePath = Storage::url($attachment->attachmentPath);
        $customMessage = $request->customMessage;
        $email = $request->email;

             Mail::to($email)->send(new shipmentAttachments($shipment, $attachment, $storagePath, $customMessage));  //maybe try to use queue instead of send...        
        return response()->json([
                                    'shipment' => $shipment,
                                    'customMessage' => $customMessage,
                                    'email' => $email
                                ]);
    }

我们目前正在使用Windows Server,因此虽然我想使用队列,但我无法使用主管来维护我的队列。

但是,如果还有其他建议,我愿意接受。我仍然相对较新,并了解可能有更好的方法来处理这些问题。

1 个答案:

答案 0 :(得分:1)

我参与了一个在IIS上运行laravel app的项目。我们必须使用队列来降低发送可邮寄的API端点的延迟。你是对的,没有适用于控制台PHP的Windows的官方稳定主管,但是我们找到了AlwaysUp(https://www.coretechnologies.com/products/AlwaysUp/)并最终运行了laravel队列。 您还应该检查您正在使用的smtp服务器,您正在谈论的时间似乎很多,但取决于确切的attachmens大小。您可以尝试使用Mailgun等外部邮件服务。