Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
在PHP电子邮件头上添加DKIM_Php_Email_Pear - Fatal编程技术网

在PHP电子邮件头上添加DKIM

在PHP电子邮件头上添加DKIM,php,email,pear,Php,Email,Pear,我正在尝试为从我的服务器发送的电子邮件添加DKIM。我在域的DNS记录(作为TXT记录)上添加了公钥,但找不到添加私钥的位置。它似乎应该进入电子邮件标题。这是代码的样子: $_headers = array( 'From' => $config['smtp_from'], 'To' => $to, 'Subject' => $subject ); if ($html) { $_header

我正在尝试为从我的服务器发送的电子邮件添加DKIM。我在域的DNS记录(作为TXT记录)上添加了公钥,但找不到添加私钥的位置。它似乎应该进入电子邮件标题。这是代码的样子:

    $_headers = array(
        'From' => $config['smtp_from'],
        'To' => $to,
        'Subject' => $subject
    );

    if ($html) {
        $_headers['MIME-Version'] = '1.0';
        $_headers['Content-type'] = 'text/html; charset=UTF-8';
    }

    if ($headers) {
        foreach ($headers as $key => $val) {
            $_headers[$key] = $val;
        }
    }

    $smtp = Mail::factory('smtp', array(
        'host' => $config['smtp_host'],
        'auth' => false,
        'username' => $config['smtp_user'],
        'password' => $config['smtp_pass']
    ));

    $mail = $smtp->send($to, $_headers, $message);

    if (PEAR::isError($mail)) {
        return false;
    } else {
        log_add('', 'To: ' . $to . '<br />Subject: ' . $subject, 'email');
        return true;
     }
$\u头=数组(
'From'=>$config['smtp_From'],
'至'=>$至,
“主题”=>$Subject
);
如果($html){
$_头文件['MIME-Version']=“1.0”;
$_头文件['Content-type']=“text/html;charset=UTF-8”;
}
如果($headers){
foreach($key=>$val的标题){
$\头文件[$key]=$val;
}
}
$smtp=Mail::工厂('smtp',数组(
'host'=>$config['smtp_host'],
'auth'=>false,
'username'=>$config['smtp_user'],
'password'=>$config['smtp_pass']
));
$mail=$smtp->send($to,$\u头,$message);
if(PEAR::isError($mail)){
返回false;
}否则{
日志添加(“”,'To:'.$To.'
主题:'.$Subject,'email'); 返回true; }
有人能告诉我应该在哪里添加私钥吗?问题是发送给Gmail收件人的电子邮件会变成垃圾邮件,所以我知道DKIM应该解决这个问题


我正在使用PEAR电子邮件从服务器发送电子邮件。

请查看此链接:谢谢@Melvita!我设法创建了私钥和公钥,但我遇到了一个问题,因此我将在这里提到解决方法,以防其他人也会遇到同样的问题:在dkim-test.php中,我将$headers变量的内容替换为$headers=Array(“From”=>“Fresh dkim Manager\n”,“to”=>“$to\r\n”,“Reply to”=>“$sender\r\n”,“content Type”=>“text/html\r\n”,“MIME版本”=>“1.0”);因为我从一个foreach循环中得到一个错误,该循环没有接收数组作为参数$dkim=AddDKIM($headers,$subject,$message)$标题['DKIM-Signature']=$DKIM//链接到lib//source://希望对您有所帮助,对不起,我没有时间测试它now@Melvita-谢谢你的建议。我配置了你提到的帖子中的所有内容,但是当从联系人表单发送电子邮件时,我收到了以下错误:
无法签名
。我发现这与
openssl\u-sign($s,$signature,$open\u-SSL\u-priv)
有关。你能告诉我可能出了什么问题吗?谢谢