2010-02-25 101 views
7

據我所知,Django只支持使用SMTP發送郵件。在沒有SMTP服務器的情況下在Django中發送電子郵件。像PHP郵件()函數一樣

我想從我的Django腳本發送電子郵件,但不想設置SMTP服務器(對我來說這太複雜了,我是一個linux新手)。

是否有可能在Django中以類似於PHP的方式發送郵件,而不提供SMTP登錄名和密碼等?

+0

您的託管服務提供商應該在您的服務器上安裝SMTP。如果您不確定設置,請聯繫他們。 – 2010-02-25 16:04:34

回答

5

PHP在UNIX系統上使用sendmail發送郵件。我想在你設置系統的某個時候,這是sendmail的配置。

Python有一個API to sendmail,也許它可以幫助你。但是在任何情況下都有一個SMTP服務器;)

+1

謝謝,這是我需要的。這裏有另外一個例子幫助:http://www.yak.net/fqa/84.html – 2010-03-01 08:01:00

2

那麼PHP如何做呢?靠魔術?

如果您沒有SMTP服務器,請註冊GMail帳戶並使用它。

+0

我不確定PHP如何執行此操作,但在安裝PHP時,我沒有在任何地方指定SMTP身份驗證設置。 我認爲Gmail SMTP,但我的郵件只能來自我的Gmail帳戶。我想在「from」字段中使用其他電子郵件。 – 2010-02-25 16:01:54

+0

爲什麼不嘗試像AuthSMTP那樣的STMP網關呢? – 2010-02-25 16:06:49

+0

當然,可以在沒有外部SMTP服務器的情況下發送電子郵件(SMTP服務器本身如何發送郵件?)所以這不是「魔術」。 – user102008 2011-03-08 02:04:13

2

您的託管服務提供商可能已經爲其計算機上的所有PHP頁面設置了主機和任何可能的登錄憑據。這會使它看起來沒有必要。您的託管服務提供商應該非常樂意爲您提供信息。嘗試在他們的常見問題解答,論壇以及他們發送的任何歡迎電子郵件中搜索SMTP。如果您的搜索沒有提供任何信息,請直接詢問。

一旦你的信息,你會想使用這些email settings將其添加到您的settings.py文件:

# *** settings.py *** 
#EMAIL_HOST = 'host here' 
#EMAIL_PORT = 587 
#EMAIL_HOST_USER = 'your user here' 
#EMAIL_HOST_PASSWORD = 'your password' 
#EMAIL_USE_TLS = True 

註釋,然後根據需要使用盡可能多的這些設置。

+0

我有我自己的服務器,所以託管服務提供商不能幫助我。感謝您的回覆。 – 2010-03-01 08:01:46

3

Postfix和Exim的構建是爲了解決與從主機向世界其他地方轉發電子郵件有關的所有問題。你的應用程序會向他們說出SMTP,然後他們轉向並與目的地說SMTP。但他們非常非常好,它

nothing stopping you可以對您要發送到的電子郵件地址的MX記錄進行DNS查找,並直接連接到該服務器並向其發送SMTP。沒有什麼,除了應該問你的嘮叨聲音「這是否比apt-get install exim4更容易?」

+0

apt-get install是我可以處理的事情,但SASL配置讓我感到害怕。這似乎很難爲這樣一個微不足道的任務... – 2010-03-01 08:02:57

+0

我不知道你爲什麼考慮SASL必要。將Postfix或Exim配置爲僅接受來自可信IP(理想情況下僅爲127.0.0.1)的連接,並且完全不進行身份驗證。 – 2010-03-04 17:35:18

相關問題