सुरक्षित सर्वर (जीमेल) का उपयोग करने के लिए Emacs smtp को कैसे कॉन्फ़िगर करें


9

यह एक प्रश्न है जो मूल रूप से https://answers.launchpad.net/vm/+question/108267 पर दिनांक 26-06-26 को दिया गया है।

यह पूछता है कि किसी को एमएसएम विंडोज पर Emacs मेल भेजने के पैकेज को कॉन्फ़िगर कैसे करना चाहिए, जैसे कि gmail जैसे सुरक्षित SMTP सर्वर के उपयोग के लिए, जिसे TLS और STARTTLS की आवश्यकता होती है। मूल प्रश्न नीचे कॉपी किया गया है।


  • मैंने सिग्विन ग्रेबल्स लगाए।

  • .Emacs में लिखा है:

    (setq send-mail-function 'smtpmail-send-it
      message-send-mail-function 'smtpmail-send-it
      smtpmail-starttls-credentials
      '(("smtp.gmail.com" 587 nil nil))
      smtpmail-auth-credentials
      (expand-file-name "~/.authinfo")
      smtpmail-default-smtp-server "smtp.gmail.com"
      smtpmail-smtp-server "smtp.gmail.com"
      smtpmail-smtp-service 587
      smtpmail-debug-info t)
    
    (require 'starttls)
    (setq starttls-use-gnutls t)
    (setq smtpmail-debug-info t)
    (setq smtpmail-debug-verb t)
    (require 'smtpmail)
    
  • मैंने जीमेल क्रेडेंशियल के साथ "~ / .authinfo" फाइल बनाई।

  • मैंने starttls.elc को हटा दिया, इसलिए संकलित संस्करण emacs द्वारा लोड नहीं किया जाएगा।

  • मैं प्रतिस्थापित (signal-process (process-id process) 'SIGALRM)करने के लिए

    (call-process "g:\\www\\cygwin\\bin\\kill.exe" nil nil nil
              "-ALRM" (format "%d" (process-id process)))
    

मैंने इस विवरण का उपयोग किया: http://obfuscatedcode.wordpress.com/2007/04/26/configuring-emacs-for-gmails-smtp/

  • जब मैं मेल भेजने की कोशिश करता हूं, तो यह मिनीबफ़र में कहता है: "S SMTP त्रुटि भेजने में विफल"

डीबग बफर में मुझे एक त्रुटि मिलती है:

'Process SMTP exited abnormally with code 53'

यह मुझे उपयोगी कुछ भी नहीं बताता है।

जवाबों:


4

निम्नलिखित सलाह है कि पल के सवाल का नेतृत्व किया। सलाह उदय रेड्डी द्वारा पता लगाया गया था और http://article.gmane.org/gmane.emacs.windows/3250 पर पाया जा सकता है । यह दिनांक 8/7/2006 है।

The problem boils down to the fact that the command

(signal-process (process-id process) 'SIGALRM)

does not work with Win32 Emacs, even with Cygwin also installed.  But one can mimic that with:

(call-process "c:\\cygwin\\bin\\kill.exe" nil nil nil
                                     "-ALRM" (format "%d" (process-id 
process)))

Gnutsl-cli (उदाहरण के लिए http://www.gnu.org/software/gnutls/manual/html_node/gnutls_002dcli-Invocation.html#gnutls_002cli-Invocation ) के दस्तावेज़ के अनुसार :

starttls option (-s)

यह "कनेक्ट करें, एक सादे सत्र स्थापित करें और tls शुरू करें।" विकल्प। EOF या SIGALRM प्राप्त होने पर TLS सत्र आरंभ किया जाएगा।

बग # 7789, न्यूजग्रुप gnu.emacs.bug पर चर्चा करते हुए, एमएस विंडोज (उर्फ Woe32) में इस सिग्नलिंग कमी की रिपोर्ट करता है।

मैंने इस परिवर्तन को करने के लिए सलाह का पालन किया (फ़ाइल "starttls.el" में फ़ंक्शन "starttls -गोशिएट-गटरल्स") लेकिन मैं अभी भी सर्वर smtp.gmail.com के माध्यम से एक परीक्षण ईमेल भेजने में असफल रहा।

मैंने निर्धारित किया कि फ़ाइल "smtpmail.el" में फ़ंक्शन "smtpmail-via-smtp" में लाइन को बदलना एक फिक्स है जो पढ़ता है:

(setq process (smtpmail-open-stream process-buffer host port))

सेवा

(let ((coding-system-for-read 'raw-text-unix))
  (setq process (smtpmail-open-stream process-buffer host port)))

यह सुनिश्चित करता है कि सर्वर प्रतिक्रिया "प्रक्रिया-बफर" में डाले जाने पर कोई कोडिंग रूपांतरण नहीं होता है। विशेष रूप से, यह सुनिश्चित करता है कि सर्वर से 220 ग्रीटिंग के अंत में CRLF वर्ण जोड़ी बदल नहीं जाती है।

इस एक अतिरिक्त बदलाव के साथ मैं smtp.gmail.com for87 के माध्यम से एक परीक्षण ईमेल भेजने में सफल रहा।

मेरी Emacs संस्करण की जानकारी "GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600) 2011-03-10 की 3249CTO पर है"।

मैंने बाद में पाया कि मेरा फिक्स http://comments.gmane.org/gmane.emacs.devel/140976 पर चर्चा द्वारा कवर किया गया है । उस चर्चा का सामान्य शीर्षक है, "'मेल-फंक्शन के लिए डिफ़ॉल्ट को बदलना'" (यह 6/26/11 को शुरू हुआ)। वहां जिन बदलावों की चर्चा की गई है - जो इसे ठीक करते हैं - इसे Emacs 24 में बनाया, लेकिन Emacs 23.3 या 23.4 में मौजूद नहीं हैं।


Smtp.gmail.com के माध्यम से Emacs से ईमेल भेजने का तरीका जानने के लिए एक और उपाय यह था कि Cygwin के "Stunnel" का उपयोग उसी तरीके से किया जाए, जैसे VM उदाहरण के लिए POP सर्वर से कनेक्ट करने के लिए इसका उपयोग करता है। मैंने "smtpmail.el" में फ़ंक्शन "smtpmail-via-smtp" को संशोधित किया ताकि वह इस तरीके से "stunnel" का उपयोग करे और "smtp.gmail.com:465" के माध्यम से परीक्षण मेल भेजने में सफल रहे। संदर्भ के लिए, देखें [ stackoverflow.com/q/9694912/1264870] (सुरक्षित सर्वर (जीमेल) [बंद] का उपयोग करके एमएसीएस वीएम से ईमेल पढ़ना)]।
एलन वीमन

11

ऐसा लग रहा है कि एमएसीएस 24 (वर्तमान में प्री-रिलीज पर) ने कई सुधार किए हैं और चीजें बहुत सरल हैं। सबसे पहले, smtpmailपुस्तकालय अब सादे एसएसएल कर सकते हैं। STARTTLS की कोई आवश्यकता नहीं है। और, gmail SMTP पोर्ट 465 पर SSL का समर्थन करता है।

तो, यहाँ सेटिंग्स आवश्यक हैं:

(setq smtpmail-stream-type 'ssl)
(setq smtpmail-smtp-server "smtp.gmail.com")
(setq smtpmail-smtp-service 465)

प्रमाणीकरण क्रेडेंशियल (लॉगिन और पासवर्ड) एक फ़ाइल में जाना चाहिए ~ / .authinfo या ~ / .authinfo.gpg। (उन्हें Emacs चर में और अधिक नहीं डाला जा सकता है।) वहां, आपको फ़ॉर्म की एक पंक्ति शामिल करने की आवश्यकता है

machine smtp.gmail.com login ..... password ..... port 465

इसके लिए वहां यही सब है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.