在1&;上通过Python/django发送电子邮件;1.

在1&;上通过Python/django发送电子邮件;1.,python,django,email,Python,Django,Email,我正在用django框架开发一个网站。我最近尝试在1&1共享主机上发布它。 我设法使项目运行良好,除了最后一个“细节”:我不能从django发送电子邮件 我尝试了几乎所有的设置(不同的电子邮件、端口等),但每次我都得到了一个漂亮的“500内部服务器错误”=/(而在免费的alwaysdata服务器上运行良好) 为了找到这个问题的根源,我尝试了不同的方法: 要通过python解释器测试send_mail和EmailMessage,请执行以下操作: 要通过python解释器连接到SMTP服务器,请执行

我正在用django框架开发一个网站。我最近尝试在1&1共享主机上发布它。 我设法使项目运行良好,除了最后一个“细节”:我不能从django发送电子邮件

我尝试了几乎所有的设置(不同的电子邮件、端口等),但每次我都得到了一个漂亮的“500内部服务器错误”=/(而在免费的alwaysdata服务器上运行良好)

为了找到这个问题的根源,我尝试了不同的方法:

要通过python解释器测试send_mail和EmailMessage,请执行以下操作: 要通过python解释器连接到SMTP服务器,请执行以下操作: 但什么也没发生(我用auth.smtp.1和1.fr或端口587尝试过);当我打断这个过程时,它会告诉我:

^CTraceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.6/smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.6/smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/usr/lib/python2.6/socket.py", line 554, in create_connection
    sock.connect(sa)
  File "<string>", line 1, in connect
KeyboardInterrupt
^CTraceback(最近一次通话最后一次):
文件“”,第1行,在
文件“/usr/lib/python2.6/smtplib.py”,第295行,在connect中
self.sock=self.\u获取\u套接字(主机、端口、self.timeout)
文件“/usr/lib/python2.6/smtplib.py”,第273行,在get套接字中
返回套接字。创建_连接((端口、主机),超时)
文件“/usr/lib/python2.6/socket.py”,第554行,在create_connection中
sock.connect(sa)
文件“”,第1行,在connect中
键盘中断
要使用php文件进行测试,请执行以下操作: 具有基本的:

<?php
  if (mail("mymail@gmail.com", "a subject", "a test")) {
    echo("<p>Email successfully sent!</p>");
  }
  else {
    echo("<p>Email delivery failed…</p>");
  }
?>

邮件已经发送了!因此,似乎没有SMTP连接,这是可能的(至少,通过php)

结论 所以,我的问题是:你认为我可以设法纠正这个错误,否则有可能发送邮件没有smtp连接(“像php”)

1和1不允许在1和1之间使用SMTP。要在1和1上运行时发送电子邮件

链接的博客文章显示了一个示例,该示例使用SMTP通过1和1通过外部机器发送邮件。也许您可以覆盖Django的send_mail(或者这会给您[或其他人]一个提示,说明它为什么不工作)。无论如何,这应该允许您在Python解释器中发送电子邮件


来源:

可能1&1正在筛选传出smtp连接。您需要了解PHP是如何配置为发送邮件的(我想它是通过
sendmail
命令直接发送邮件的);可能要检查
phpinfo()
…您是否正确导入了
发送邮件
<代码>从django.core.mail导入发送邮件
./manage.py shell
>>> from smtplib import SMTP
>>> smtp_conn = SMTP()
>>> smtp_conn.connect('smtp.gmail.com', 25)
^CTraceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.6/smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.6/smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "/usr/lib/python2.6/socket.py", line 554, in create_connection
    sock.connect(sa)
  File "<string>", line 1, in connect
KeyboardInterrupt
<?php
  if (mail("mymail@gmail.com", "a subject", "a test")) {
    echo("<p>Email successfully sent!</p>");
  }
  else {
    echo("<p>Email delivery failed…</p>");
  }
?>
#!/usr/bin/python
import os
mail_to = "sam@comcast.net"
mail_from = "steve@example.com"
subject = "test message"
header = """From: {0}
To: {1}
Subject: {2}
""".format(mail_from, mail_to, subject)
msg = header + "a test from me"
sendmail = os.popen("/usr/lib/sendmail -t", "w")
sendmail.write(msg)
sendmail.close()