0

我正在使用 postfix 邮件服务器,并通过别名将传入的电子邮件发送到控制器:

v2mail1: |"/var/www/html/dev/rails/v2p0/script/email_handler.sh incoming_email development"

email_handler.sh我将来自标准输入的电子邮件作为 POST 消息传递给控制器​​:

/usr/bin/curl -F email='<-' -s -f $base_url/$1

所以我在控制器中将整个电子邮件作为字符串获取。如何解析此字符串以获取to, cc, subject, body,attachments等。我没有找到任何宝石。例如字符串:

"From nagyt@hu.inter.net  Fri Jun 27 11:14:28 2014\nReturn-Path: <nagyt@hu.inter.net>\nX-Original-To: v2mail1\nDelivered-To: v2mail1@centos1.tibi1959.hu\nReceived: by centos1.tibi1959.hu (Postfix, from userid 276)\n\tid C0DC7283A04; Fri, 27 Jun 2014 10:18:59 +0200 (CEST)\nDate: Fri, 27 Jun 2014 10:18:59 +0200\nTo: v2mail1@centos1.tibi1959.hu\nSubject: test from ntibor to v2mail1\nUser-Agent: Heirloom mailx 12.5 7/5/10\nMIME-Version: 1.0\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\nMessage-Id: <20140627081859.C0DC7283A04@centos1.tibi1959.hu>\nFrom: nagyt@hu.inter.net (Nagy Tibor)\n\nTest\n"
4

1 回答 1

1

我找到了解析原始电子邮件文本的最简单方法:

mail = Mail.new raw_mail

在这种情况下,是Mail::Messagemail的一个实例,其中包含我需要轻松访问邮件属性和附件的所有方法。

于 2014-06-30T09:39:29.443 回答