2017-06-03 140 views
0

我试图使用Outlook的凭据从Django发送SMTP电子邮件。我的代码在本地主机上工作,但是当我将代码上传到生产服务器时,它不会。Django:生产服务器中的Outlook电子邮件smtp超时

如果我使用我的Gmail凭证,它也适用于生产,但它不适用于Outlook。所以,我认为Outlook配置方式不同,但我不知道。

这是我的看法代码:

def send_my_custom_email(): 

    connection = mail.get_connection(
     host = 'smtp-mail.outlook.com', 
     port = 25, 
     username = '[email protected]', 
     password = 'mypassword' , 
     ) 
    connection.open() 

    email2send = mail.EmailMessage('hello', 'hello', '[email protected]', to=['receiveremail'], connection=connection) 

    email2send.send() 
    connection.close() 

我知道,我的配置设置是正确的,因为它可以从本地主机发送电子邮件。这些是我的settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 

我已经尝试检查Outlook设置,但我找不到有关SMTP使用的任何信息。

我确切的问题是:

  1. 展望需要在生产aditional的设置?
  2. 问题出在我的代码或Outlook设置?
  3. 为什么它在localhost中工作,但它不在生产服务器中?

回答

1

Outlook.com只允许在端口587加密SMTP TLS连接,它甚至没有在端口25听,这就是为什么你会得到一个超时。

+0

端口25在本地主机上工作。我尝试了您的建议,并且它仍然在端口587上超时。还有另一个设置用于加密的SMTP TLS? – Nazkter

+0

它在本地工作,因为您的本地主机侦听端口25. Outlook.com不会。您是否在使用端口587时指定了TLS? –

+0

我从本地主机指向outlook服务器,我没有使用本地SMTP服务器。我知道specigy TLS的唯一方法是在我的settings.py中放入“EMAIL_USE_TLS = True”,我不知道它是否必须在连接设置中配置 – Nazkter

相关问题