1

App Engine 1.7.7 の最近のリリースでは、TCP または UDP ソケットを使用してアウトバウンド接続を確立できるようになりました。これにより、新しい可能性の全世界が開かれます。

Python 2.5を使用import socketして、いくつかの単純な低レベル コマンド (socket.getaddrinfo("smtp.gmail.com", 587)... など) を正常にテストできました。

ポート 587 で認証済みの SMTP 接続を開始しようとしています。

import smtplib
session = smtplib.SMTP('smtp.gmail.com', 587)

...しかし、_remote_socket.pyのgethostbyaddrNotImplementedError関数からすぐに遭遇します。この機能が実装されていないことは、https: //developers.google.com/appengine/docs/python/sockets/overview の Google App Engine Sockets API の概要で言及されていないため、これは驚くべきことです。

ここで何が起こっているのか、この制限を回避するにはどうすればよいですか?

: Python 2.7 にはまだ移行していません。開発サーバーにはまだ Python 2.5 と old_dev_appserver.py を使用しています。

ありがとうございました。

4

1 に答える 1

2

local_hostname をコンストラクターに渡してみてください。

セッション = smtplib.SMTP('smtp.gmail.com', 587, local_hostname='appengine.google.com')

于 2013-05-01T08:42:51.793 に答える