简体   繁体   English

PHP:从Amazon SES保存到S3的文件中解析邮件

[英]PHP: Parse mails from files saved to S3 by Amazon SES

I am using Amazon SES's Rule Set to direct all mails sent to my domain to a SES Bucket. 我正在使用Amazon SES的规则集将发送到我的域的所有邮件定向到SES Bucket。 I am now trying to read these files programatically but am unable to figure out how to do so. 我现在正在尝试以编程方式读取这些文件,但我无法弄清楚如何这样做。 I researched this topic and came upon PHP's Mailparse functions. 我研究了这个主题,并发现了PHP的Mailparse函数。 My code is this: 我的代码是这样的:

    $filnename = '/Users/R00tUser/Downloads/u38sf1l0jcd4s1tifl59a10psc16i7nfoaq2c64';
    $resource = mailparse_msg_parse_file($filename);
    $parts = mailparse_msg_get_structure($resource);
    var_dump($parts);
    $text = mailparse_msg_extract_whole_part_file($resource, $filename);
    var_dump($text);

The output of both the var_dump is bool(false) . var_dump的输出都是bool(false) Since the documentation of these methods is almost non existent I do not know what is going wrong. 由于这些方法的文档几乎不存在,我不知道出了什么问题。 Can someone please correct mistakes in my code or please suggest a better way of doing what i am trying to do. 有人可以纠正我的代码中的错误,或者请建议一个更好的方法来做我想做的事情。

Content of the file i am trying to parse: 我试图解析的文件的内容:

Return-Path: <>
Received: from mail1.dokia.com (mail1.dokia.com [212.63.232.3])
 by inbound-smtp.us-east-1.amazonaws.com with SMTP id v1o5lrohq3e841no469t801
 for abcdghgasd@mydomain.com;
 Thu, 03 Nov 2016 10:34:17 +0000 (UTC)
X-SES-Spam-Verdict: PASS
X-SES-Virus-Verdict: PASS
Received-SPF: none (spfCheck: 212.63.232.3 is neither permitted nor denied by domain of mail1.dokia.com) client-ip=212.63.232.3; envelope-from=postmaster@mail1.dokia.com; helo=mail1.dokia.com;
Authentication-Results: amazonses.com;
 spf=none (spfCheck: 212.63.232.3 is neither permitted nor denied by domain of mail1.dokia.com) client-ip=212.63.232.3; envelope-from=postmaster@mail1.dokia.com; helo=mail1.dokia.com;
 dkim=pass header.i=@sender.be;
X-SES-RECEIPT: AEFBQUFBQUFBQUFGcHNSUkh4ShWRWNhN3djZ3hoUllvLzRyM0RXY3dNMER6OXBRcHNoZnBiRlQzbkNnUE1BK3B3TXgzYURnUE8yREFJd0ZJTW5SbWhaSm03dlE3cVljazE0QzVLbjhYNCsxdnRCdmc2M3o5bDI3ZVM4Nm1vK3BZdnUra1I1Wjc2MFo5VXA3c0psR0JaOGIvMWhmRThiMD0=
X-SES-DKIM-SIGNATURE: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
    s=hkasda87d; d=amazonses.com; t=1478169251;
    h=X-SES-RECEIPT:From:To:Subject:Date:Message-ID:Content-Type:MIME-Version;
    bh=Hywa/hajdiyfsdhjsdf+3Iz8=;
    b=O/hjagdasd6hjasd
    890adskajsd+hhjahda98789asd
    hkjahdkjhasd987asdhjk+2Osk=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
  d=sender.be; q=dns/txt; s=sender; t=1478169257;
  x=1509705257;
  h=from:to:subject:date:message-id:references:in-reply-to:
   mime-version:content-transfer-encoding;
  bh=Hywa/ghjgsd87a6dasjhbakf+3Iz8=;
  b=bbdksahiofds8fdfhjkaksd+h17EaoYrG
   mnbxzcuiuasdyibjsiud/JhgsdufgIUIUhhdksfksdiu
   OlsdjsdiThdklfj/hkasd876ihkjdfk/+Jkufd+rgruk
   w=;
From: "Sender Sender1" <sender@sender.be>
To: Super User <super.user@mydomain.com>
Subject: Automatic reply: Special Situation
Thread-Topic: Special Situation
Thread-Index: KHHSDHkjsaduiad==
Date: Thu, 3 Nov 2016 10:34:11 +0000
Message-ID: <23e9f814220844f393dc026f8cfea2d6@ULU0SXHT003P.urp.int.dexwired.net>
References: <1240504930.186814941478169243108.JavaMail.app@rbg11.atlis1>
In-Reply-To: <1240504930.186814941478169243108.JavaMail.app@rbg11.atlis1>
X-MS-Has-Attach: 
X-Auto-Response-Suppress: All
X-MS-Exchange-Inbox-Rules-Loop: sender@sender.be
X-MS-TNEF-Correlator: 
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

And more so behind fox deliberately unwound took far because yikes cowered =
much far firefly jeez revealed soggy away 
-----------------------------------------------
https://www.google.com/doodles/358th-anniversary-of-tea-in-the-uk
-----------------------------------------------

Instead of using Mailparse directly I found the solution is using a library like: https://github.com/php-mime-mail-parser/php-mime-mail-parser . 我没有直接使用Mailparse,而是发现解决方案使用的是: https//github.com/php-mime-mail-parser/php-mime-mail-parser Its sufficient for the task i am doing and very straight-forward to use 它足以完成我正在做的任务并且非常直接地使用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM