我是 Django 新手,但我已经阅读了大约 50 页(主要是 SO 和 Django 文档)并且没有找到任何适合我的情况的东西。
我只是想通过 Django 中的 send_mail 函数发送一封电子邮件;虽然我希望通过 Gmail 上的 SMTP 来实现这一点,但现在它甚至无法通过 localhost 来实现。当我在测试此 send_mail 函数的地方运行我的 test_email.py 文件时,我收到以下错误:
ConnectionRefusedError : [WinError 10061] 无法建立连接,因为目标机器主动拒绝了它
当我在 shell 中运行相同的 send_mail 调用时(通过 python manage.py shell),它完全没问题,并且可以按照我的预期显示电子邮件。只有当我尝试在 Django 中运行它时才会弹出错误。请注意,无论我在settings.py文件中放入以下两组设置的哪种排列,都会出现上述错误:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
我还在我的 settings.py 文件中使用了以下内容,以及这些设置与前一组设置的各种混合(尽管我想我已经超越了自己看到 localhost 是如何不工作的):
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myemail@gmail.com' # Note I'm using my actual gmail address here in real life
EMAIL_HOST_PASSWORD = '****' # Note I'm using my actual gmail password here in real life
DEFAULT_FROM_EMAIL = 'myemail@gmail.com' # Note I'm using my actual gmail address here in real life
SERVER_EMAIL = 'myemail@gmail.com' # Note I'm using my actual gmail address here in real life
当我尝试运行 localhost 路由时,我在 CMD 提示符下运行以下命令:
python -m smtpd -n -c DebuggingServer localhost:1025
这是我试图在 Django 中运行的test_email.py文件,我收到连接被拒绝错误:
from django.core.mail import send_mail,EmailMessage
from django.conf import settings
settings.configure()
# Create your tests here.
# Email test #1: send email from my personal email to myself
send_mail(
'Email Test #1',
'Test if I can send email from my personal Gmail account to another email account via Django project.',
settings.EMAIL_HOST_USER,
['myemail@gmail.com'],
fail_silently=False
)
任何关于为什么这甚至不能通过 localhost 工作的想法或对其他尝试的建议将不胜感激。
谢谢!