【问题标题】:Sending Godaddy email via Django using python使用 python 通过 Django 发送 Godaddy 电子邮件
【发布时间】:2017-11-25 05:47:02
【问题描述】:

我有这些设置

EMAIL_HOST = 'smtpout.secureserver.net'
EMAIL_HOST_USER = 'username@domain.com'
EMAIL_HOST_PASSWORD = 'password'
DEFAULT_FROM_EMAIL = 'username@domain.com'
SERVER_EMAIL = 'username@domain.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
SMTP_SSL = True

与 Godaddy 交谈,我发现这些是端口和设置

smtpout.secureserver.net
ssl
465

587
TLS ON

3535
TLS ON

25
TLS ON

80
TLS ON
or
TLS OFF

我已经尝试了所有的组合。如果我将 TLS 设置为 True,我会得到

STARTTLS extension not supported by the server.

如果我设置为 465,我会得到

如果我设置其他组合,例如

EMAIL_HOST = 'smtpout.secureserver.net'
EMAIL_HOST_USER = 'username@domain.com'
EMAIL_HOST_PASSWORD = 'password'
DEFAULT_FROM_EMAIL = 'username@domain.com'
SERVER_EMAIL = 'username@domain.com'
EMAIL_PORT = 25
EMAIL_USE_TLS = False

为了验证,我使用 Google Mail 设置来测试通过 python 发送的电子邮件是否有效,并且它正在工作。

现在我想切换到 GoDaddy,而且我知道我们使用 TLS 登录的电子邮件,即使是 POP3 下载也能正常工作,所以我不确定为什么 python / Django 选项不起作用。你能帮忙吗?

我已经打电话给 Godaddy,他们无法提供帮助,因为这是一个软件问题 - 他们的所有设置和端口都可以正常工作,所以我没有人可以问。

【问题讨论】:

  • 不是一个直接的答案,但您可以在您的域中使用像 zoho 这样的免费电子邮件提供商,而无需担心您的托管服务提供商设置。 stackoverflow.com/a/45326023/466066
  • 感谢 Jose 对此进行调查,我知道这是一种选择,但我正在寻找这个特殊的解决方案,我相信很多人都想知道答案。

标签: python django email smtp contact-form


【解决方案1】:

这对我的 GoDaddy 电子邮件很有用。由于 GoDaddy 在 Office365 中设置了您的电子邮件,因此您可以使用 smtp.office365.com。

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.office365.com'
EMAIL_HOST_USER = 'myemail@GoDaddyDomain.com'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = 'myPassword'
EMAIL_PORT = 587
EMAIL_USE_SSL = False
EMAIL_USE_TLS = True

views.py 中处理发送电子邮件的方法。 email 变量来自用户表单。

from django.conf import settings
from django.core.mail import EmailMessage
def send_email(subject, body, email):
    try:
        email_msg = EmailMessage(subject, body, settings.EMAIL_HOST_USER, [settings.EMAIL_HOST_USER], reply_to=[email])
        email_msg.send()
        return "Message sent :)"
    except:
        return "Message failed, try again later :("

【讨论】:

  • 尝试了一段时间后,这个解决方案是唯一对我有用的解决方案。我想知道这是否是推荐的方法。
  • 即使是 Godaddy 支持也帮不了我。这完美无瑕。
【解决方案2】:

我发现这段代码对我有用..希望这对某人有用。
我使用的是 SMTP godaddy webmail..您可以将此代码放入您的 django 设置文件中。
因为你不能同时设置 SSL 和 TSL...如果你这样做你会得到错误 例如,有时 SSL 或 TSL 都可以是真的....

设置.py

# Emailing details
EMAIL_HOST = 'md-97.webhostbox.net'
EMAIL_HOST_USER = 'mailer@yourdomain'
EMAIL_HOST_PASSWORD = 'your login password'
EMAIL_PORT = 465
EMAIL_USE_SSL = True

【讨论】:

    【解决方案3】:

    已经有一段时间了,但也许答案可以帮助其他人。我刚刚与 GoDaddy 讨论了这个问题,他们告诉我所需的配置就像,

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtpout.secureserver.net'
    EMAIL_HOST_USER = env('EMAIL_HOST_USER')
    DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
    SERVER_EMAIL = EMAIL_HOST_USER
    EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')
    EMAIL_PORT = 80
    EMAIL_USE_SSL = False
    EMAIL_USE_TLS = True
    

    这些是 django 配置设置,但我确信它可以复制到其他平台。

    另外,他们提供的电子邮件 dns 配置是,

    【讨论】:

      【解决方案4】:

      我设法决定访问该网站 https://sso.secureserver.net/?app=emailsetup&realm=pass& 好像访问的时候可以开启邮箱对外使用。

      EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
      EMAIL_HOST = 'smtpout.secureserver.net'
      EMAIL_HOST_USER='aXXXX@xxxx'
      EMAIL_HOST_PASSWORD='AsgGSDAGSasdsagas'
      DEFAULT_FROM_EMAIL='aXXXX@xxxx' 
      EMAIL_PORT=465
      EMAIL_USE_SSL=True 
      EMAIL_USE_TLS=False
      

      它对我有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-06
        • 1970-01-01
        • 1970-01-01
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        • 2020-02-06
        • 1970-01-01
        相关资源
        最近更新 更多