2010-11-30 15 views
8

मैं PHPMailer क्लास का उपयोग कर डीकेआईएम के साथ ईमेल पर हस्ताक्षर करने की कोशिश कर रहा हूं और मैं इसे काम नहीं कर सकता।डोमेनकी-हस्ताक्षर और डीकेआईएम-हस्ताक्षर के बीच क्या अंतर है?

जब मैं जीमेल पर अपने ईमेल में हेडर देखता हूं, तो मुझे लगता है कि कक्षा सफलतापूर्वक ईमेल हेडर में डीकेआईएम इंजेक्शन कर रही है लेकिन जीमेल भी परवाह नहीं करता है।

सवाल है कि मैं लिंक्डइन ईमेल के हेडर देखा है और मैं यह है कि वे 2 DKIM हेडर, DomainKey-Signature & DKIM-Signature उपयोग कर रहे हैं पता चला है।

क्या अंतर है? और यही कारण है कि जीमेल मेरे ईमेल को सत्यापित नहीं करता है? & क्या आप php पर डोमेन कुंजी के साथ ईमेल पर हस्ताक्षर करने के लिए किसी भी वैकल्पिक & मजबूत कक्षाओं की अनुशंसा करते हैं?

धन्यवाद

उत्तर

9

दोनों सार्वजनिक/निजी कुंजी का उपयोग डिजिटल हस्ताक्षर करने के लिए ईमेल। दोनों प्रेषक के DNS सर्वर में एक टेक्स्ट फ़ाइल का उपयोग करते हैं जिसमें सार्वजनिक कुंजी होती है जिसे प्राप्तकर्ता द्वारा हस्ताक्षर सत्यापित करने के लिए उपयोग किया जा सकता है।

डोमेन कुंजी पहला संस्करण था।

डीकेआईएम अद्यतन संस्करण है।

अंतर यह है कि डोमेन कुंजी और डीकेआईएम संदेशों पर हस्ताक्षर कैसे करते हैं, और हेडर का निर्माण करते हैं।

ईमेल प्राप्तकर्ता उनमें से किसी एक (या दोनों) को लागू कर सकते हैं। एकमात्र चीज जो आप कर सकते हैं, दोनों वर्गों के साथ साइन इन है, यदि आप सभी अड्डों को कवर करना चाहते हैं।

क्या आप डोमेनकेस बनाम डीकेआईएम के बीच अंतरों पर तकनीकी विवरण चाहते हैं?

PHPMailer 5.1 में --Dave

+0

धन्यवाद के लिए डेव आपका उत्तर, ईमेल के लिए हस्ताक्षरित हेडर कैसे उत्पन्न करें? – Ryan

+0

दुर्भाग्यवश मुझे नहीं पता कि PHP के साथ ऐसा कैसे करें। माफ़ कीजिये। –

+0

ऐसा लगता है जैसे PHPMailer DKIM का समर्थन करता है। हालांकि परीक्षण नहीं किया है: http://www.worxware.com/forum/viewthread.php?tid=185 –

0

DKIM समर्थन सही ढंग से बॉक्स से बाहर काम नहीं करता।

  1. मैं इस URL पर ठीक से लागू किया:

    // digitally sign with DKIM if enabled 
    if ($this->DKIM_domain && $this->DKIM_private) { 
        $header_dkim = $this->DKIM_Add($header,$this->Subject,$body); 
        $header = str_replace("\r\n","\n",$header_dkim) . $header; 
    } 
    
  2. : http://sourceforge.net/tracker/index.php?func=detail&aid=2960165&group_id=26031&atid=385707

  3. लाइन 566 पर, मैं इस बदलना पड़ा यहाँ मैं, क्या करने के लिए करने के लिए यह काम कर रहा था क्या है

... यह करने के लिए:

// digitally sign with DKIM if enabled 
    if ($this->DKIM_domain && $this->DKIM_private) { 

    // Hack to add To: header to the headers which are passed to DKIM_Add 
      // Note that this only adds the first To: recipient, so it's going to break 
      // if you try to send an email to more than one person simultaneously 

    $header_temp = $header . $this->LE . 'To: ' . $this->to[0][0]; 
    $header_dkim = $this->DKIM_Add($header_temp,$this->EncodeHeader($this->SecureHeader($this->Subject)),$body); 
    $header = str_replace("\r\n","\n",$header_dkim) . $header; 
    } 
संबंधित मुद्दे