我有一个简单的网站,运行与Joomla!,它有一个联系形式,从那里的访问者可以发送一个信息给我。此消息是使用sendmail服务通过电子邮件发送的。
网站机器在中运行,默认情况下,我不能从它发送电子邮件(这是Google强加的限制)。为了达到发送电子邮件的目的,需要第三方服务,如SendGrid。
我在SendGrid上使用Google合作伙伴程序创建了一个免费帐户,验证了我的用户,等等。帐户已妥善拨备。
根据sendmail的说法,我将我的SendGrid服务配置为使用SendGrid发送电子邮件。一切看起来都很好但是..。根本不传递任何信息。
我在/var/log/mail.log的邮件日志显示:
Jan 21 16:22:10 web-hosting sm-mta[16350]: t0JHWaec027559: to=<my@email.com>, delay=1+22:49:34, xdelay=00:00:00, mailer=relay, pri=23251559, re
lay=smtp.sendgrid.net., dsn=4.0.0, stat=Deferred: Connection timed out with smtp.sendgrid.net.据谷歌称,我的机器不能使用端口25、465和587,所以我将配置更改为使用sendmail.mc文件中的端口2525。什么都没变。
有什么暗示吗?我的机器正在运行Ubuntu14.04LTS。
发布于 2015-01-22 13:59:45
好吧,我发现问题了。
我的原始/etc/mail/sendmail.mc文件没有#dnl define(‘SMART_HOST’, ‘smtp.your.provider’)dnl行,所以我不知道将配置(来源)放在哪里:
define(`SMART_HOST', `smtp.sendgrid.net')dnl
FEATURE(`access_db')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 2525')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 2525')dnl(注意:对于机器,您需要使用2525端口而不是默认的587)
问题是,你不能把它放在文件的末尾。当我把它放在“不要碰这里”部分之后,配置就开始工作了:
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
...
DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl # SendGrid code herehttps://stackoverflow.com/questions/28072278
复制相似问题