1

最近、Python を使用してメールを送信するコードを見つけました。単一のユーザー専用だったので、すべての行にメールを保存するtxtファイルからメールを取得してメールを送信するように変更しました。しかし、私が見つけたのは、メールがスパム フォルダ (Gmail の場合) またはジャンク フォルダ (hotmail または live の場合) に入っていることです。メッセージがスパムとしてフィルタリングされるのではなく、受信トレイに届くようにコードを変更することはできますか? 何か問題がありましたか?

import smtplib,sys

server = 'smtp.gmail.com'
port = 587

sender = 'my-username@gmail.com'
subject = 'Gmail SMTP Test'
body = 'blah blah blah'

"Sends an e-mail to the specified recipient."



session = smtplib.SMTP(server, port)

session.ehlo()
session.starttls()
session.ehlo
session.login(sender, 'my-password!')

f = open('emails.txt')
for line in f:
  recipient = line
  print recipient
  headers = ["From: " + sender,
       "Subject: " + subject,
       "To: " + recipient]
  headers = "\r\n".join(headers)
  session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)

f.close()
session.quit()
4

3 に答える 3

2

スパムの分類はあなたが行っているわけではないため、これは非常に難しい質問です。(明らかに! 誰かが自分のメッセージを「スパムではない」ようにすることができれば、もちろんスパマーもそうするでしょう。)

大規模なメールの送信を真剣に考えている場合、サーバーの認証など、さまざまなことを行う必要があります。専門家でない限り、メール会社のサービスを利用する必要があります。

于 2012-06-26T12:32:28.340 に答える
0

PHP を使用して電子メールを送信する際にも同様の問題がありましたが、件名と本文を変更するだけでスパム フォルダから電子メールを取り除くことができました。

「ジャックの店からの請求書」や「Twitter の紹介」など、さまざまなことを試してみてください。または、実際のメールから件名と本文を取り出して、テストに入れます。

于 2012-06-26T14:06:55.783 に答える
0

はい、片道はありますが、時間を無駄にする方法があります.....

これはあなたのコードです:

sleep メソッドを入れて、このコードに置き換えます

    import smtplib,sys
    import time
    server = 'smtp.gmail.com'
    port = 587

    sender = 'my-username@gmail.com'
    subject = 'Gmail SMTP Test'
    body = 'blah blah blah'

    "Sends an e-mail to the specified recipient."



    session = smtplib.SMTP(server, port)

    session.ehlo()
    session.starttls()
    session.ehlo
    session.login(sender, 'my-password!')

    f = open('emails.txt')
    for line in f:
      recipient = line
      print recipient
      headers = ["From: " + sender,
           "Subject: " + subject,
           "To: " + recipient]
      headers = "\r\n".join(headers)
      session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
      time.sleep(3)
    f.close()
    session.quit()

他の問題のコメントがあれば....:)

于 2014-12-23T06:36:46.213 に答える