0

クラッシュダンプをクライアントからメールメカニズムを介して私に転送します。したがって、アカウントのクレデンシャルをアプリケーションにパックすることは許可されていないため、パブリックSMTPサーバーを使用することはできません。

したがって、アプリケーションを介して宛先メールサーバーに直接メールを送信する必要があります。

Pythonでこれをどのように達成できますか?(私はWindowsを使用しているのでsendmail、オプションではありません)

4

1 に答える 1

2

smtplib標準ライブラリで使用するだけです。

誰にでもメールを送信できるコードを書こうとすると問題が生じます。これsmtplibは、サーバーからサーバーへのリレー スタイルではなく、クライアントからサーバーへのスタイルでサーバーに接続するためです。

しかし、自分が管理している特定のサーバーにメールを送信するだけであれば、簡単です。「crash-reports@example.com」から「crash-reports@example.com」へのすべてのメールを受け入れるように、「mail.example.com」でサーバーを設定するだけです。

コードは次のようになります。

import smtplib
addr = 'crash-reports@example.com'
def send_crash_report(crash_report):
    msg = ('From: {}\r\nTo: {}\r\n\r\n{}'.format(
           addr, addr, crash_report)
    server = smtplib.SMTP('mail.example.com')
    server.sendmail(addr, [addr], msg)
    server.quit()

補足として、クラッシュ レポート コレクターを使い始めたばかりの場合は、メール アドレスの代わりに Web サービスの使用を検討することをお勧めします。企業のファイアウォール/プロキシ経由でポート 25 にアクセスできない人、受信トレイからクラッシュ レポートを抽出するコードを作成する人 (および/または IMAP や mbox などを介して検索する人)、スパマーに対処する人の問題に遭遇するでしょう。どういうわけかcrash-reports@example.com、実際のクラッシュレポートごとにシアリスに関する900のメッセージを見つけて殺到する人など.

于 2013-01-31T21:56:14.177 に答える