sendmail:如何在ubuntu上配置sendmail?[关闭]


189

当我在ubuntu上搜索配置sendmail时,没有得到明确的答案,每个人都以为我知道他们在说什么,

我只想要基本配置来启用电子邮件发送,基本上我将与Google App Engine一起使用它来启用从开发服务器发送邮件。

我已经做到了:

sudo apt-get install sendmail

然后

sudo sendmailconfig

但我不知道最后一个实际上做了什么。


4
@ThiefMaster我们是否不再将问题迁移到相应的SE网站?
迈克尔

这个问题太旧了,无法迁移(在我关闭它时已经是如此)。
ThiefMaster 2014年

1
这些答案都不对我有用。我发现此在线文章对我有用
在线Sid

@ThiefMaster定义“太老了”,您是说sendmail已过时吗?再想一想。
PJ Brunet

@PJBrunet虽然我确实认为sendmail它已经过时了(还有更好的选择!),但五年前我的评论仅是关于我们不将过时的问题迁移到另一个SE网站这一事实。
ThiefMaster

Answers:


145

键入时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 myemail@domain.com

下面将允许您将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 -C /etc/mail):

m4 sendmail.mc > sendmail.cf

重新启动sendmail守护程序:

service sendmail restart

2
尝试执行最后一个命令时,我得到以下提示:我的测试电子邮件是从sendmail发送的:没有此类文件或目录
UXE 2012年

2
抱歉,当您说时your.isp.net,我要放gmail.com还是放进smtp.gmail.com去?
Houman

30
尚不清楚的一件事是在AuthInfo:your.isp.net中进行哪些替换“ U:root”“ I:user”“ P:password”具体来说,如何替换U:root和I:user
Tom Haws 2013年

13
如果其他人感到困惑,则sendmail.mc文件内的字符串必须采用BACKTICK +您的文本+ SINGLE QUOTE的形式。
托马斯


35

一键编辑后,我得到了最有效的答案(无法回复)

这对我不起作用:

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

每个字符串的第一个单引号应更改为反引号(`),如下所示:

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

更改后,我运行:

sudo sendmailconfig

而且我在做生意:)


3
无论我是否使用您的修复程序,当我调用服务sendmail restart时,都会得到文件类:无法打开'ATURE(authinfo,'):没有这样的文件或目录
Tom Haws

4
它是“功能”而不是“特征”,请检查您的复制/粘贴内容
jyavenard 2013年

您必须将其粘贴到sendmail.cf中的其他位置(我将其粘贴在邮件上方,但是我仍然没有收到邮件)
Toskan's

14

结合上面的两个答案,我终于使它起作用。请注意,每个字符串的第一个单引号是 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

我仍然无法理解AuthInfo这一行...您能否举一个例子... ???
Atul Dravid-白色列兵。Ltd.

例如,我的客户信息只有一行,AuthInfo:smtp.gmail.com "U:username" "P:password"
flyrain 2014年

仍然使用所有这些设置和AuthInfo,我将smtp.gmail.com与google.admin的现有帐户一起使用,成为了SPAM列表AuthInfo:smtp.gmail.com“ U:root”“ I:name@domain.com”“ P:password “还尝试了AuthInfo:smtp-relay.gmail.com“ U:root”“ I:name@domain.com”“ P:password”
xoxn-- 1'w3k4n

要澄清:AuthInfo: smtp.gmail.com "U:yourusername@gmail.com" "P:yourpassword"
Mendes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.