Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将postfix邮件集成到我的(python)webapp中_Python_Email_Message_Postfix Mta - Fatal编程技术网

将postfix邮件集成到我的(python)webapp中

将postfix邮件集成到我的(python)webapp中,python,email,message,postfix-mta,Python,Email,Message,Postfix Mta,我有一个postfix服务器,可以监听和接收mywebsite.com上收到的所有电子邮件。现在,我想在自定义界面中显示这些postfix电子邮件,这也适用于每个用户 需要说明的是,mywebsite.com的所有用户都将获得如下邮件地址someguy@mywebsite.com他在我的生产机器上接收电子邮件,但他在mywebsite.com的仪表板中内置的自己的控制台中看到了这些邮件 因此,为了让用户看到他收到的邮件,我需要创建一个postfix邮件的电子邮件副本,以便mywebsite(在d

我有一个postfix服务器,可以监听和接收mywebsite.com上收到的所有电子邮件。现在,我想在自定义界面中显示这些postfix电子邮件,这也适用于每个用户

需要说明的是,mywebsite.com的所有用户都将获得如下邮件地址someguy@mywebsite.com他在我的生产机器上接收电子邮件,但他在mywebsite.com的仪表板中内置的自己的控制台中看到了这些邮件

因此,为了让用户看到他收到的邮件,我需要创建一个postfix邮件的电子邮件副本,以便mywebsite(在django python上运行)能够很容易地反映这些邮件。我如何做到这一点。确切地说,这是我的问题,如何将后缀邮件转换为python邮件对象(以便我的系统/网站能够理解它)


为了明确起见,我已经编写了psuedo代码来实现我想要的:

email_as_python_object = postfix_email_convertor(postfix_email)
attachments_list = email_as_python_object.attachments
body = email_as_python_object.body # be it html or whatever

顺便说一句,我已经尝试了python附带的默认电子邮件模块,但这并不适合所有情况。甚至我也需要手动处理邮件附件(我讨厌这样)。我只需要一个简单的方法来处理这样的情况(我想知道postfix是如何理解收到的电子邮件的。例如,它如何自动识别不同的标题、附件等)。请帮帮我。

我不确定我是否理解这个问题

如果您希望远程web应用程序能够查看用户的邮箱,可以安装pop或imap服务器,并使用邮件客户端(您应该能够找到现成的)来读取电子邮件。或者,您可以编写一些东西,使用Python本身附带的相关库查询pop/imap服务器


如果您想将邮件复制到另一台机器上,可以使用procmail并设置相应的操作。Postfix可以设置为以这种方式调用procmail。

您希望将Postfix传递到本地邮箱,然后使用webmail系统让用户访问存储的邮件

不要挂断postfix——它只是一个传输代理——它从一个地方接收消息,然后把它们放在其他地方,它不存储消息。 因此,postfix将通过SMTP接收邮件,并将其放入本地邮件文件中

然后IMAP或某些网络邮件系统将向用户显示这些消息


如果您希望将邮件集成到您的webapp中,那么您可能应该运行IMAP服务器,并使用python IMAP库来获取邮件。

首先,Postfix邮件路由规则可能非常复杂,而您可能首选的解决方案在错误的位置会涉及很多技巧。您不想意外地显示其他用户的邮件,是吗?第二,尽管Postfix几乎可以做任何事情,但它不应该做,因为它只是一个MDA(邮件传递代理)

您的解决方案最好使用POP3或IMAP服务器(Cyrus IMAPd、Courier等)。IMAP服务器可以有“超级用户帐户”,可以读取所有用户的邮件。然后,您的web应用程序可以连接到用户邮箱并检索标题和正文

如果您只想显示主题行,那么可以使用一个特殊的IMAP命令和非常低的开销获取主题行。不过,Python IMAP库并不是最容易理解的API。我将使用标准库中的一个示例来尝试(未选中!):

import imaplib

sess = imaplib.IMAP4()
sess.login('superuser', 'password')
# Honor the mailbox syntax of your server!
sess.select('INBOX/Luke') # Or something similar. 
typ, data = sess.search(None, 'ALL') # All Messages.

subjectlines = []
for num in data[0].split():
    typ, msgdata = sess.fetch(num, '(RFC822.SIZE BODY[HEADER.FIELDS (SUBJECT)])')
    subject = msgdata[0][1].lstrip('Subject: ').strip()
    subjectlines.append(subject)
这将登录到IMAP服务器,选择用户邮箱,获取所有邮件ID,然后(希望)仅获取主题行,并将结果数据附加到主题行列表中

要获取邮件的其他部分,请使用sess.fetch更改行。有关fetch的特定语法,请参阅(第6.4.5节)


祝你好运

没有NXC。我想要的是,我想让用户在我的网站的仪表板上看到他的电子邮件。所以我的网站应该知道什么是正确的电子邮件信息(正确显示)?因此,我需要一种方法,让我的应用程序/网站知道电子邮件已经有什么内容(正文、附件等)。我该怎么做?我已经写了psuedo代码来得到我想要的。请看一看。这听起来像是一个更强大、更可扩展的应用程序设计。。。使用这样的系统,如果负载需要,应用程序可以无缝地跨多个层增长,另外还有现有的库来帮助实现这一点。