使用pyramid_mailer会导致ValueError: TPC in progress错误

3

我正在一台运行Ubuntu Linux的服务器上运行金字塔(pyramid),并且在尝试使用pyramid_mailer时,遇到了ValueError。我编写的代码比较简单,似乎任何东西都会导致这个问题:

def my_view(request):
     mailer = get_mailer(request)
     emailMessage = Message(subject="Welcome", sender="noreply@mysite.com", recipients = ["me@email.com"], body="test")
     mailer.send(emailMessage)

导致此错误的结果:

Traceback (most recent call last):
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/router.py", line 242, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/router.py", line 217, in invoke_subrequest
    response = handle_request(request)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/pyramid_debugtoolbar-2.0.2-py2.7.egg/pyramid_debugtoolbar/toolbar.py", line 160, in toolbar_tween
    return handler(request)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/pyramid_tm-0.7-py2.7.egg/pyramid_tm/__init__.py", line 79, in tm_tween
    manager.abort()
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/transaction-1.4.3-py2.7.egg/transaction/_manager.py", line 116, in abort
    return self.get().abort()
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/transaction-1.4.3-py2.7.egg/transaction/_transaction.py", line 468, in abort
    reraise(t, v, tb)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/transaction-1.4.3-py2.7.egg/transaction/_transaction.py", line 453, in abort
    rm.abort(self)
  File "/usr/share/nginx/wwwProj/local/lib/python2.7/site-packages/repoze.sendmail-4.2-py2.7.egg/repoze/sendmail/delivery.py", line 119, in abort
    raise ValueError("TPC in progress")
ValueError: TPC in progress

我按照此网站上“更简单的入门方法”部分的说明进行操作:http://pyramid-mailer.readthedocs.org/en/latest/

3个回答

3

这是一个已知问题。在此期间,可以通过将repoze.sendmail 4.2回退到4.1来解决问题。


1
recipients = ["me@email.com"]

这里 你可以看到

  • recipients - 邮件地址列表

0

这是我在尝试设置邮件系统时遇到的第一个错误,虽然我记不清我当时做了什么。无论如何,最终我通过SMTP使它能够用于Gmail发件人。希望这对处于我的位置的其他人有所帮助:

import smtplib

sender = "noreply"
to = "username"
subject = "Verification Code"

headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to,
subject)

sEmailMessage = headers + "whatever message you want"

mailserver = smtplib.SMTP("smtp.gmail.com", 587)
#--- because of gmail
mailserver.ehlo()
mailserver.starttls()
mailserver.ehlo()
#---
mailserver.login("your_email_address@gmail.com", "your_password")

mailserver.sendmail("from_here@gmail.com", to_here@whatever.com, sEmailMessage)
mailserver.close() 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接