Python Django发送电子邮件

Python Django发送电子邮件,python,django,email,Python,Django,Email,在PHP中,我只需调用mail()即可发送电子邮件。在Django中,我需要指定SMTP后端和其他内容 有没有更简单的方法从Django发送电子邮件?在Django.core.mail模块中有几个很好的邮件发送功能 有关教程,请参见: 虽然Python使发送电子邮件成为可能 通过smtplib相对容易 Django提供了几个 轻包装在它上面。这些包装纸 用于发送电子邮件 速度更快,便于测试 在开发过程中发送电子邮件,以及 为以下平台提供支持: 无法使用SMTP 最适合您用途的最简单功能是: se

在PHP中,我只需调用
mail()
即可发送电子邮件。在Django中,我需要指定SMTP后端和其他内容


有没有更简单的方法从Django发送电子邮件?

Django.core.mail
模块中有几个很好的邮件发送功能

有关教程,请参见:

虽然Python使发送电子邮件成为可能 通过smtplib相对容易 Django提供了几个 轻包装在它上面。这些包装纸 用于发送电子邮件 速度更快,便于测试 在开发过程中发送电子邮件,以及 为以下平台提供支持: 无法使用SMTP

最适合您用途的最简单功能是:

send_mail(
    subject, 
    message, 
    from_email, 
    recipient_list, 
    fail_silently=False, 
    auth_user=None, 
    auth_password=None, 
    connection=None)

在PHP中,只能在非Windows系统上使用简单的mail()命令发送邮件。他们希望安装和正确配置本地MTA-like-Postfix,大多数web服务器都应该如此。如果您想依赖第三方或分散的邮件服务,则取决于电子邮件对您的应用程序的重要性。严重依赖快速可靠的电子邮件传输通常会导致通过SMTP将邮件发送到中央邮件服务器(“大管道”)

不过,如果您希望使用与PHP中相同的函数,请尝试以下方法:

import subprocess

def send_mail(from_addr, to_addr, subject, body):
  cmdline = ["/usr/sbin/sendmail", "-f"]
  cmdline.append(from_addr)
  cmdline.append(to_addr)
  mailer = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
  dialog = "From: %s\nTo: %s\nSubject: %s\n\n%s\n.\n" % (from_addr, to_addr, subject, body)
  return mailer.communicate(dialog)
然后像这样使用它:
发送邮件(“我”、“收件人”、“主题”、“邮件正文”)

无论哪种方式,您都需要一些后端(阅读MTA)。在我的脑海中,我能想到两件事:

  • 如前所述,您可以使用sendmail
  • 更好的方法是使用Python MTA。还有Lamson,一个Python电子邮件服务器(MTA):

  • “邮件是使用电子邮件主机和电子邮件端口设置中指定的SMTP主机和端口发送的。”??您需要指定谁将发送您的电子邮件-如果在某些位置未配置某种SMTP服务器以发送电子邮件,即使PHP也无法发送电子邮件。好的,我在PHP.ini中找到了相关信息,但是现在发送电子邮件的速度非常慢。您不必在PHP中指定SMTP设置的唯一原因是,其他人在安装Web服务器时已经为您完成了这项工作。所有电子邮件都通过SMTP发送。唯一的问题是哪个SMTP服务器将接受来自客户端的连接,以及客户端如何向服务器进行身份验证。您当地的系统管理员应该能够在大约10秒内提供此信息。(好的,可能20秒。)好的,我在php.ini中找到了信息,但现在发送电子邮件非常慢。你是如何衡量它非常慢的?我发送表单并等待10-15秒,直到页面加载