SMTP転送を有効にする方法は?

SMTP転送を有効にする方法は?

私はLinux(Ubuntu 16.04)を実行している大学サーバーを使用しています。このサーバーを使用して(以下のPython、以下のコードを使用して)電子メールを送信しようとしていますが、発信SMTP接続がブロックされているようです。 (コードが私のMacで実行されており、サーバーにハングしているので、これを言うことです。)ブロックを解除する方法はありますか?

もちろんシステム管理者に聞いてみましたが、これまで私ができることがあるのではないかと思いました。サーバーをインターネットに接続するには、すでにエクスポートを追加する必要がありました。特に、次の項目に追加しました.bash_profile

export https_proxy='...'
export http_proxy='...'

うまくいくには、同様のことをする必要がありますか?電子メールを送信するには、「SMTP認証(SMTP AUTH)の有効化」が必要であることを(大学の)Webページで見ました。しかし、オンラインで確認してみると便利な情報が見つかりませんでした。 SMTP AUTHを有効にするとはどういう意味ですか?これは、電子メールサーバーに接続するときに安全な接続を使用することを意味しますか?

これは電子メールを送信するために使用するPythonコードです。

server = smtplib.SMTP_SSL(smtp_ssl_host, smtp_ssl_port) <--- this is where is hangs
server.login(username, password)
server.sendmail(username, targets, msg.as_string())
server.quit()

このメールは私のyandexアカウントを使用して送信しています。

ベストアンサー1

コメントで述べたように、いくつかの質問がありました。ここではポート25の問題について少し話しましょう。

ポート25は標準ポートです。暗号化されていないSMTPポートの場合、システム管理者は組織のファイアウォールを設定してこのポートのアウトバウンドトラフィックをブロックするのが一般的です。これを行うには2つの主な理由があります。

  1. マルウェア、悪意のあるソフトウェア、スパマーなどが悪意のある目的で電子メールを送信するのを防ぎます。
  2. 正当なユーザーが暗号化されていないチャンネルを介して電子メールを送信するのを防ぎます。

2番目は、管理者が承認されたユーザーが暗号化された接続(SSL / TLSなど)を介して電子メールを送信できるようにすることを前提としています。セキュアアウトバウンドSMTPの標準ポートは587です。あなたの場合、これが許可されている場合は問題が解決します。ポート587を介してSMTPリレーサーバーへの暗号化された接続を確立します。コードでこれを行う方法を理解する必要があります(または別々に/他の場所で行う方法をお問い合わせください)。

残念ながら、#1は#2に代わるものが多く、管理者でも安全な電子メール通信を許可しません。その場合は、SMTP リレーを維持する電子メール プロバイダーが代替ポートでトラフィックを許可していることを確認してください。たとえば、一部はポート 10025 を使用するオプションを提供します。または、電子メールを配信できるサードパーティの電子メールプロバイダがあります。つまり、ポート10025で電子メールを受け入れ、ポート25でプライマリプロバイダのリレーに転送します。これは私の検索からの最初の例です。「代替ポートSMTP」サービス。これに対する手数料があります。このサービスを無料(少なくとも少量)で提供する人を見つけることができます。

あるいは、管理者がこのポリシーに特別な例外を許可することもできます。たとえば、あなたが会社に勤務し、アクセスがビジネスにとって重要であることを証明している場合は、限られた数のソースホストおよび/または特定のSMTPリレーアドレスに対する25/587のトラフィックを許可できます。

それでも成功しない場合は、次善策はSSHトンネリングである可能性があります。ファイアウォールの外部でSSHサーバー(sshdなど)を実行しているコンピューターにアクセスする必要があります。その後、あるポートでリッスンし、アウトバウンドを別のホストの別のポートに転送する特別な種類の接続を確立できます。オンラインにはすでに多くの説明があるので、これを行う方法については詳しく説明しません。

修正する:管理者に相談せずに代替ポートを使用したりSSHトンネルを設定したりして後で知ったらあまり親切にならないことを付け加えたいです。顧客が満足していない場合は、このオプションを使用する必要はありません。一方、事前に議論する場合は、全く禁止することもできます。あなたはあなたの選択に重みを置く必要があります。あなたが行っていることがセキュリティに悪影響を及ぼさない限り、合理的な管理者はこれに同意します。しかし、それらはすべて合理的なわけではありません。 :)

おすすめ記事