问题标签 [dkim]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何从 Python 调用 Perl 脚本,通过管道输入?
我正在将一些对 DomainKeys 和 DKIM 的支持加入到一个开源电子邮件营销程序中,该程序使用 python 脚本通过 SMTP 发送实际电子邮件。我决定走一条快速而肮脏的路线,只写一个 perl 脚本,它接受来自 STDIN 的电子邮件,对其进行签名,然后将其返回签名。
我想做的是从 python 脚本,将字符串中的电子邮件文本通过管道传输到 perl 脚本,并将结果存储在另一个变量中,这样我就可以发送签名的电子邮件。但是,我并不完全是 python 大师,而且我似乎找不到一个好方法来做到这一点。我很确定我可以os.system
为此使用类似的东西,但是将变量传递给 perl 脚本似乎让我难以理解。
简而言之:如何将变量从 python 脚本传输到 perl 脚本,并将结果存储在 Python 中?
编辑:我忘了包括我正在使用的系统只有 python v2.3
postfix-mta - 使用 Postfix 进行电子邮件发件人身份验证
我已设置 PostFix 仅用于接收电子邮件。
我想通过使用 SPF 或 DKIM 对收到的电子邮件的发件人电子邮件地址进行身份验证。
有没有一个好的java插件可用于此?还是我需要用java编写自己的(其他偏好C,C ++),请回复相关参考。
提前致谢
阿什什
c# - 如何使用 C# SMTP 客户端进行 Domainkeys/DKIM 电子邮件签名?
我用 C# 编写了一个发送电子邮件的程序。现在我需要使用 Dominkeys/DKIM 签署出站电子邮件,但我不知道该怎么做。
我已经设置了所有密钥,但我不知道如何获取这些密钥以及如何将它们包含在电子邮件标题中。
php - 如何在 PHP 中验证 DKIM 签名?
我承认我不太擅长密钥验证。我有一个从 POP3 服务器下载消息的脚本,我正在尝试验证 PHP 中的 DKIM 签名。我已经弄清楚了正文哈希 (bh) 验证检查,但我无法弄清楚标头验证。
http://www.dkim.org/specs/rfc4871-dkimbase.html#rfc.section.6.1.3
下面是我的邮件标题的示例。我已经能够使用 Mail::DKIM 包来验证 Perl 中的签名,所以我知道这很好。我似乎无法弄清楚 RFC 中的说明并将它们翻译成 PHP 代码。
我可以很好地从我的 DNS 中提取公钥,并且我相信我正确规范了标头,但我无法验证签名。我认为我没有正确准备我的密钥或计算签名验证。
这是可能的吗(我需要梨扩展或其他东西吗?)还是在 PHP 中手动验证 DKIM 签名只是不可行?
c# - 无法验证 DKIM 的正文哈希
我正在编写一个 C# DKIM 验证器,但遇到了一个我无法解决的问题。现在我正在计算正文哈希,如第 3.7 节计算消息哈希中所述。我正在处理使用 Exchange 2010 传输代理 SDK 中的 EdgeTransportAsyncLogging 示例的修改版本转储的电子邮件。保存时不会转换电子邮件,它只是打开一个基于 MessageID 的文件并将原始数据转储到磁盘。
我能够使用以下代码成功计算第 A.2 节中提供的示例电子邮件的正文哈希:
上述代码的输出是:
现在,大多数电子邮件都会遇到该c=relaxed/relaxed
设置,这要求您在散列和验证之前对正文和标题进行一些工作。当我在处理它(未能让它工作)时,我终于遇到了一条消息,c=simple/simple
这意味着你处理整个身体,减去CRLF
身体末端的任何空白。(真的,Body Canonicalization 的规则非常……简单。)
这是真正的 DKIM 电子邮件(右键单击并保存,浏览器会吃掉结尾CRLF
),使用简单算法(完全未修改)进行签名。现在,使用上面的代码并更新expectedBase64
哈希,我得到以下结果:
预期的散列是来自标头bh=
字段的值DKIM-Signature
。现在,第二个测试中使用的文件是 Exchange 2010 传输代理的直接原始输出。如果愿意,您可以查看修改后的EdgeTransportLogging.txt。
此时,无论我如何修改第二封电子邮件,更改CRLF
文件末尾的起始位置或数量,我都无法使文件匹配。让我担心的是,到目前为止,我无法验证任何正文哈希(简单或轻松),并且通过 Exchange 2010 处理 DKIM 可能不可行。
php - 在基于 PHP 的 SMTP 客户端中设置 DomainKeys/DKIM
看起来有一些很棒的库可以在 C#/.NET 上对电子邮件进行 DomainKeys 签名,但我很难找到对 PHP 的相同类型的支持。也许我没有找对地方?
我找到的唯一一个是http://php-dkim.sourceforge.net/;它看起来非常hacky,只支持PHP4。考虑到 PHP 的流行程度,以及域名密钥对于将电子邮件分类为非垃圾邮件的重要性,我希望有更好的工具;你知道吗?你还有什么技巧可以推荐的吗?
额外信息:我正在使用外部 SMTP 提供商,因为我每天需要发送数千封电子邮件。
filter - 为什么 DKIM 签名不好
我已经设置了一个 postfix 邮件接收服务器。
在此我使用 DKIM milter 来验证传入的邮件 DKIM 签名。
从一些电子邮件客户端,我收到以下“错误的签名数据”错误:
任何人都可以给我任何线索为什么我在我的后缀日志中收到上述错误
和
我可以采取什么补救措施来纠正或解决这个问题
或者
警告发件人。
提前致谢
阿什·夏尔马
postfix-mta - OpenDKIM 或 dkim-milter
我需要将 DKIM 添加到 Postfix 安装中。我发现了两个与 Postfix 一起工作的实现。OpenDKIM和 dkim-milter dkim-milter。前者声称是后者的一个分支。
从发布和邮件列表活动来看,OpenDKIM 似乎是更活跃的项目。
我应该使用这些实现中的哪一个(或另一个)?
perl - 使用 Perl CPAN Mail::DKIM::Signer 的 DKIM 错误正文散列
我有一个通过 SMTP 发送电子邮件的脚本,我试图让它使用 CPAN 的 Mail::DKIM::Signer 使用 DKIM 签名对电子邮件进行签名。问题是我收到正文哈希无效的错误。例如,我将下面的电子邮件发送给 port25.com 验证程序,它告诉我它预期的正文哈希是“QFBPfFyqSONobf7fNoeeGl652WY”,但我的签名是“qUFULrL5rN08Illvd85ZYXxgNNk=”。
My DNS record is "k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDs5BnRmpNH0Pz6B02+z F2GuLm7ahrEXu6zB3WgxySbAGT8v9rpzI7ePhXhxo/RMXR9p5IYtzmBJ0NTjNLDKRFeSOMTeRdDi8DnO 4gUxKyT3v31IvS0+1ZZH2Sj404uv/jg2TKNinIU4/v+pM4ImLZ8uIXsEXRFgGhwKTjTJRNX0QIDAQAB"
有没有人能够解释为什么收件人(包括 yahoo 和 port25)期待不同的正文散列?与它的编码方式有关吗?
asp.net - 使用 ASP.NET 为 DKIM 签名电子邮件
Jeff Atwood 在他的帖子中有一篇关于通过电子邮件垃圾邮件过滤器的好帖子:http: //www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-代码.html
我唯一的问题是想办法用 DKIM 的私钥签署电子邮件。我们使用 ASP.NET 3.5 附带的 MailMessage 和 SmtpClient 对象。如何使用这些对象签署电子邮件?
此外,我们使用 Windows 2008 R2 附带的免费 SMTP 服务器。我不相信有办法从该服务器签名,如果有办法我愿意使用这种方法。