2012-04-28 79 views
163

當我搜索配置在Ubuntu的sendmail我沒有得到任何明確的答案,他們每個人都假設我知道他們在說什麼,sendmail:如何在Ubuntu上配置sendmail?

我只想基本配置,以啓用電子郵件發送,基本上我會用它與谷歌應用程序引擎啓用郵件從開發服務器發送。

我已經這樣做:

sudo apt-get install sendmail 

然後

sudo sendmailconfig 

,但我不知道是什麼,最後一個實際上沒有。

+3

@ThiefMaster是否我們不再將問題遷移到相應的SE網站? – Michael 2014-12-03 22:58:25

+0

這個問題太老了,無法遷移(當我關閉它時它已經是如此)。 – ThiefMaster 2014-12-03 23:01:59

+1

這些答案都不適合我。我發現這篇適合我的在線文章:http://www.daveperrett.com/articles/2013/03/19/setting-up-sendmail-with-sendgrid-on-ubuntu/ – 2016-07-22 18:42:55

回答

129

當您在sudo sendmailconfig中鍵入時,應該提示您配置sendmail。

作爲參考,即在配置期間更新的文件位於以下(如果你想手動更新它們):

/etc/mail/sendmail.conf 
/etc/cron.d/sendmail 
/etc/mail/sendmail.mc 

可以測試sendmail來查看是否正確配置,並設置通過鍵入以下到命令行:

$ echo "My test email being sent from sendmail" | /usr/sbin/sendmail [email protected] 

下面將讓你的SMTP中繼添加到sendmail的:

#Change to your mail config directory: 
cd /etc/mail 

#Make a auth subdirectory 
mkdir auth 
chmod 700 auth 

#Create a file with your auth information to the smtp server 
cd auth 
touch client-info 

#In the file, put the following, matching up to your smtp server: 
AuthInfo:your.isp.net "U:root" "I:user" "P:password" 

#Generate the Authentication database, make both files readable only by root 
makemap hash client-info < client-info 
chmod 600 client-info 
cd .. 

將以下行添加到sendmail.mc,但之前MAILERDEFINITIONS。確保你更新你的smtp服務器。

define(`SMART_HOST',`your.isp.net')dnl 
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnl 

調用創建sendmail.cf(或者運行make):

m4 sendmail.mc > sendmail.cf 

重新啓動sendmail守護程序:

service sendmail restart 
+2

當我試着最後一個命令時這 bash:我的測試電子郵件從sendmail發送:沒有這樣的文件或目錄 – UXE 2012-04-28 00:48:39

+0

也應該在這些文件中編輯,以啓用通過SMTP服務器憑證發送? – UXE 2012-04-28 00:52:25

+1

添加了添加smtp中繼的說明。 – Venice 2012-04-28 01:18:55

35

我得到最多的回答工作(不能答覆還)經過一次小小的編輯

這不適合我:

FEATURE('authinfo','hash /etc/mail/auth/client-info')dnl 

每個字符串的第一個單引號改爲反引號(')是這樣的:

FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl 

的變化後,我跑:

sudo sendmailconfig 

而且我在業務:)

+3

是否使用您的修復程序,當我調用服務sendmail重新啓動,我得到fileclass:無法打開'ATURE(authinfo,':沒有這樣的文件或目錄 – 2013-08-29 19:01:17

+4

它的「FEATURE」而不是「ATURE」,檢查您的複製/粘貼 – jyavenard 2013-09-23 00:48:59

+0

你必須將它粘貼到sendmail.cf中的不同位置(我把它放在郵件程序上方,但我仍然沒有郵件) – Toskan 2016-04-29 00:03:36

12

結合上面的兩個答案,我終於使它的工作。請注意,每個字符串的第一個單引號是文件sendmail.mc中的反引號(`)

#Change to your mail config directory: 
cd /etc/mail 

#Make a auth subdirectory 
mkdir auth 
chmod 700 auth #maybe not, because I cannot apply cmd "cd auth" if I do so. 

#Create a file with your auth information to the smtp server 
cd auth 
touch client-info 

#In the file, put the following, matching up to your smtp server: 
AuthInfo:your.isp.net "U:root" "I:user" "P:password" 

#Generate the Authentication database, make both files readable only by root 
makemap hash client-info < client-info 
chmod 600 client-info 
cd .. 

#Add the following lines to sendmail.mc. Make sure you update your smtp server 
#The first single quote for each string should be changed to a backtick (`) like this: 
define(`SMART_HOST',`your.isp.net')dnl 
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl 

#run 
sudo sendmailconfig 
+0

我仍然有問題來理解行AuthInfo ...你可以舉一個例子。 .. – 2014-02-20 15:47:47

+0

例如,我的客戶端信息只有一行,'AuthInfo:smtp.gmail.com'U:username「」P:password「' – flyrain 2014-02-20 18:36:01

+0

仍然包含所有這些設置和AuthInfo我落入垃圾郵件列表 使用smtp.gmail.com與google.admin中的現有帳戶 AuthInfo:smtp.gmail。com「U:root」「I:[email protected]」「P:password」 也試過 AuthInfo:smtp-relay.gmail.com「U:root」「I:[email protected]」「P:密碼「 – 2016-03-23 15:25:25