jv-conseil / dkim-php-mail-signature
🔏 独立的DKIM类,用于使用2048位私钥(使用SHA-256算法散列)签名您的电子邮件。
Requires
- php: >=5.6.37
Requires (Dev)
README
🔏 独立的DKIM类,用于使用2048位私钥(使用SHA-256算法散列)签名您的电子邮件。
使用方法
示例行,导入到您的邮件代码中,以开始使用DKIM签名
require_once __DIR__ . '/../vendor/autoload.php' ; // Autoload files using Composer autoload use JVconseil\DkimPhpMailSignature\DKIMsign ; use JVconseil\DkimPhpMailSignature\DKIMconfig ; // init $config = new DKIMconfig('/www/inc/config/jv-conseil/dkim-php-mail-signature/config.inc.php') ; $sign = new DKIMsign( $config->private_key, $config->passphrase, $config->domain, $config->selector ) ; // sign $signed_headers = $sign->get_signed_headers($to, $subject, $message, $headers) ; // send email mail($to, $subject, $message, $signed_headers.$headers) ;
安装
逐步指南,用于生成您的加密密钥并通过DNS记录填充它们。
安装与加载
DkimPhpMailSignature可在Packagist上找到(使用语义版本控制),通过Composer安装DkimPhpMailSignature是推荐的方式。只需将此行添加到您的composer.json
文件中
"jv-conseil/dkim-php-mail-signature": "^1.0"
或运行
composer require jv-conseil/dkim-php-mail-signature
请注意,vendor
文件夹和vendor/autoload.php
脚本是由Composer生成的;它们不是DkimPhpMailSignature的一部分。
创建配置文件的副本
在开始之前,您应该复制文件夹config/
并将其存储在您的网站的非公开区域(例如)Composer仓库外部:
/www/inc/config/jv-conseil/dkim-php-mail-signature/
如果不这样做,将来Composer更新可能会导致您丢失所有设置。
生成您的公钥和私钥加密密钥
在终端中输入以下命令行以在config/
文件夹的路径下开始工作
cd /www/inc/config/jv-conseil/dkim-php-mail-signature/
在终端中输入以下命令行以生成一个新的私钥2048位加密密钥
openssl genrsa -des3 -out private.pem 2048
输入您的密码短语,并保存它以在下一步中编辑config.inc.php
文件。
然后检索您的公钥
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
如果它们在密钥创建过程中引起冲突,您可以删除存储在config/
文件夹中的两个原始*.pem
文件密钥。
使用新的DKIM记录编辑您的DNS
访问您的注册商界面(例如:OVH.com)并创建一个新的DKIM记录来声明您的公钥
selector._domainkey IN TXT ( "v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ekggNf9vuzzL4SlVc8QZyyqbEwR5bVTPC9cEZ8hFqTKOc7go180n3RZilYJZvveaxBkLCVJSTQaMPtKuSptY5au6Pi3AkFlizzhUJ80+0zgZXSGx7gfbginbRwhD+XdGOe9NXpo0PfrD6dEJ49Ytx4/nHB0TKiL227C0kGWb7RfWTVWccgJq4+kQb4l+4" "oDU5rGomSYK+zmMV13QTSETcJnoXhmjoJ30omyJfEXAsK5Ny0LJo8rWCucLD31BxHrM9/+M/Ye+TWxcrD2mRh5Jxqcnyj00/7kCnWeGPTftVKkAJBP3JMRqCNShLUchLhaz0qeXUtxAe9dx7ltr8042QIDAQAB;" )
DKIM与SPF和DMARC记录配合使用效果更好,您还应该考虑编辑它们。
3600 IN TXT "v=spf1 include:_spf.google.com ~all" _dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:me@yourdomain.name"
进一步阅读
编辑您的配置文件
在config/config.sample.inc.php
下,您将找到一个配置文件示例,以帮助您设置自己的详细信息。
现在,您可以在文件名中删除.sample
并开始编辑它
- 域名:您的域名,例如:google.com
- 选择器:在您的DKIM DNS记录中使用的
选择器
,例如:selector._domainkey.MAIL_DKIM_DOMAIN - 密码短语:用于生成密钥的密码短语,例如:myPassPhrase。
- ...其他参数可以省略。
简单使用
示例行,导入到您的邮件代码中,以开始使用DKIM签名
require_once __DIR__ . '/../vendor/autoload.php' ; // Autoload files using Composer autoload use JVconseil\DkimPhpMailSignature\DKIMsign ; use JVconseil\DkimPhpMailSignature\DKIMconfig ; // init $config = new DKIMconfig('/www/inc/config/jv-conseil/dkim-php-mail-signature/config.inc.php') ; // set: this calls __set() $config->domain = "mynewdomain.name" ; // get: this calls __get() $config->domain ; // => "mynewdomain.name" ;
介绍DKIMmail类
📬 独立类,用于使用2048位私钥(使用SHA-256算法散列)发送DKIM签名的电子邮件。
// init $mail = new DKIMmail('/www/inc/config/jv-conseil/dkim-php-mail-signature/config.inc.php') ; // parameters $mail->from = "Sender" <sender@yourdomain.com> ; $mail->to = "Recipient" <recipient@yourdomain.com> ; $mail->subject = "Your Mail Subject" ; $mail->body = "Your Mail Message." ; $mail->attach("/path/to/your/attachment.jpg", "NameOfYourAttachment.jpg") ; // send! $mail->send() ;
文档
文档可在线上找到,尽管它可能不完全是最新的,或者与您的版本不完全匹配。
您可以通过在此项目的顶层文件夹中运行phpdoc
来生成API文档,并将文档生成在此文件夹中
php ~/vendor/bin/phpdoc -d ~/dkim-php-mail-signature/ -t ~/dkim-php-mail-signature/docs/
您需要安装phpDocumentor。
赞助
如果这个项目帮助您缩短了开发时间,您可以给我一杯咖啡 ☕️ :-)