質問: 安全なサーバー(gmail)を使用するためにemacssmtpを設定する方法 これは、2010年4月26日に https://answers.launchpad.net/vm/+question/108267 で最初に提起された質問です。tlsとstarttlsを必要とするgmailなどの安全なsmtpサーバーで使用するためにmswindowsでemacsメール送信パッケージを構成する方法を尋ねます。元の質問は以下にコピーされます。 cygwinsgnutlsをインストールしました。 .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) gmailの認証情報を使用して「〜/ .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/ メールを送信しようとすると、ミニバッファに「送信に失敗したsmtpエラー」と表示されます。 デバッグバッファでエラーが発生します:'process smtp exited abnormally with code 53' それは私に何も有用なことを教えてくれません。
回答: 以下は、今の質問につながったアドバイスです。アドバイスはudayreddyによって発掘され、 http://article.gmane.org/gmane.emacs.windows/325 で見つけることができます。 2006年8月7日付けです。 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_002dcli-invocation ): starttls option (-s) これは「接続し、プレーンセッションを確立し、tlsを開始する」です。オプション。 tlsセッションは、eofまたはsigalrmを受信したときに開始されます。 ニュースグループgnu.emacs.bugで議論されているバグ#7789は、ms windows(別名woe32)でのこのシグナリングの欠陥を報告しています。また、この変更を行うためのアドバイスに従いましたが(ファイル「starttls.el」の関数「starttls-negotiate-gnutls」で)、サーバーsmtp.gmail.com:587を介してテストメールを送信できませんでした。修正は、ファイル「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文字ペアが変更されないようにします。この1つの追加の変更により、smtp.gmail.com:587経由でテストメールを送信することに成功しました。私のemacsのバージョン情報は「3249ctoの2011-03-10のgnuemacs 23.3.1(i386-mingw-nt5.1.2600)」です。後で、私の修正が http://comments.gmane.org/gmane.emacs.devel/140976 での議論でカバーされていることがわかりました。その議論の一般的なタイトルは「 `send-mail-function 'のデフォルトの変更」です(2011年6月26日に始まりました)。そこで議論された変更(修正を行う)はemacs 24に組み込まれましたが、emacs23.3または23.4には存在しません。