- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Python 的新手,正在尝试通过套接字通信创建电子邮件发送脚本,但似乎无法使用 dkimpy 库对其进行签名。我在网上尝试了几个示例,但在运行 dkim.sign 时都返回了相同的错误:
File "C:\Python34\lib\re.py", line 196, in split return _compile(pattern,flags).split(string, maxsplit)
TypeError: expected string or buffer
据我所知,dkim.sign 函数中的第一个变量应该是一个字符串,所以我尝试了 readlines () 甚至 .as_string() 来确定。我检查了消息,它似乎符合 RFC822。但我会仔细检查是否有人认为这可能是问题所在。没有 dkim.sign 它可以完美工作(减去任何安全性,如 SPF/DKIM)
这是我正在使用的代码片段:
f=open('mail.htm','r')
text=MIMEText(f.read(),'html')
headers = Parser().parse(open('mail.htm', 'r'))
sender=headers['From']
receiver=headers['To']
subj=headers['Subject']
f.close()
private_key = open('default.pem').read()
headers = ['To', 'From', 'Subject']
sig = dkim.sign(text, 'default', '<mydomain.here>', private_key, include_headers=headers)
解析后的 header 也用作套接字发送脚本的输入。我确实有一个用于测试目的的 dkim key ,但我认为它甚至没有达到这一点。
有什么见解吗?
编辑:好的,我只是尝试使用 dkimpy lib 中的 dkim.rfc822_parse 解析字符串(而不是对其进行签名),但出现以下错误:
return _compile(pattern, flags).split(string, maxsplit)
TypeError: can't use a bytes pattern on a string-like object
我是在读这篇文章还是看起来代码需要一个字符串但模式是以字节为单位的?
已修复:奇怪的是我没想到要检查 private_key。我在 Win 中手动创建了我不知道的 key ,Windows 添加了一个不可见的换行符,甚至 vim 或 nano 都看不到。用 MCEdit 删除它后,程序运行顺利。感谢您的帮助:)
最佳答案
如果我没记错的话,dkim.sign 需要完整的消息源作为参数,但您传递的是 MIMEText 对象。
尝试传递 text.as_string() 而不是
sig = dkim.sign(text.as_string(), .... )
关于python - 在 Python 中使用 DKIM 手动签署电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22833719/
我将 Google Apps 用于我的域 jkltech.in,我想用 DKIM key 签署我的电子邮件,因为我在我的网站上使用 Google App Engine。 我已向我的 DNS 提供商注册
我们正在为我们的时事通讯使用外部服务,这需要在我们的域中进行以下 DKIM 设置 gipote.dk : _domainkey.gipote.dk. 43200 IN TXT "o=~" d
我有两个单独的 DKIM 记录,它们使用相同的选择器。 一个是使用“k1”作为选择器的 MailChimp,另一个是我还没有发现它的用途的旧记录。 有没有办法使用相同的选择器在同一个 DKIM 记录中
我有几个发送电子邮件的云应用程序。每个应用程序都设置了 DKIM。 例如: cloud app 1 : k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ
请解释 DomainKeys 与 DKIM 之间的差异 最佳答案 DomainKeys Identified Mail (DKIM) 是 Yahoo DomainKeys 的后继者。与 DomainK
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve th
我正在尝试使用 C++ 和 OpenSSL 编写电子邮件客户端应用程序。当我通过此应用程序检查和发送电子邮件时,Gmail 和 Yahoo 都在我的电子邮件标题中显示错误.. Gmail 显示 >“d
问题: 我正在使用带有 Postfix 的 OpenDKIM。该邮件使用以下代码在 PHP 中生成,然后使用 mail() 发送: // message $message = "--$hash".P
我正在尝试使用 DKIM header 向 gmail(或任何其他电子邮件提供商)发送一封非常简单的电子邮件。 gmail中的结果是:dkim=neutral(body hash没有验证) 我假设正文
我一直无法找到答案,所以如果之前有人问过这个问题,请原谅我。 我正在与非营利组织合作,他们拥有一个用于非营利帐户的谷歌工作区。我正在努力设置我们的 SPF/DKIM/DMARC 记录,除了一种情况外,
DKIM 支持两种规范化方案:轻松和简单。前者更为宽松,允许中间邮件者在有限程度上修改电子邮件。 我能找到的唯一数据是 survey of implementations这表明绝大多数电子邮件发件人对
我正在使用 PHPMailer 发送邮件,并希望在邮件中附加 DKIM 签名。我在申请之前遇到了问题this patch 。现在我可以将成功签名的邮件发送到 isnotspam.com。 我已成功签署
我为我的公司配置了一个新的电子邮件服务器,我们在 theplanet.com 上使用云服务器,在 bluehost.com 上使用共享主机,我使用 iredmail 配置服务器,一切正常,但是当我尝试
我正在编写一个 C# DKIM 验证器,遇到了一个我无法解决的问题。现在我正在计算正文哈希,如 Section 3.7 Computing the Message Hashes 中所述。 .我正在使用
我正在尝试使用 Phoneix 和 Amazon SES 发送电子邮件,使用 bamboo 和 bamboo_ses。我已经在 Amazon SES 上验证了电子邮件和域,并将(相同的)DKIM 记录
我正在尝试使用 swift 邮件程序设置 DKIM header 。问题是当我检查 Gmail 中的电子邮件时,DKIM 状态为“FAIL”。根据https://mxtoolbox.com和其他一些工
我们最近为我们的域实现了 DMARC 记录: “v=DMARC1;p=隔离;pct=100;rua=mailto:me@mydomain.com” (隔离 100% 未经身份验证的电子邮件并将汇总报告
我正在为我的 MailChimp 事件配置 DKIM。 除了选中“验证此事件”复选框以使我的域识别 MailChimp 之外,我还需要做什么?为此,我需要在我的机器上安装 openDKIM 吗? 最佳
我使用 mandrill 发送使用 javamail 创建的电子邮件。当我尝试使用用户的发件人地址从我们的应用程序发送电子邮件时,DKIM 签名包含我们从未分配且不存在的电子邮件地址。当我在不使用 m
我是一名优秀的程序员,十分优秀!