我正在尝试让Sitecore通过gmail帐户发送邮件,但它无法正常工作。 这是我在web.config中的设置:
<setting name="MailServer" value="smtp.gmail.com" />
<!-- MAIL SERVER USER
If the SMTP server requires login, enter the user name in this setting
-->
<setting name="MailServerUserName" value="adress@gmail.com" />
<!-- MAIL SERVER PASSWORD
If the SMTP server requires login, enter the password in this setting
-->
<setting name="MailServerPassword" value="secret" />
<!-- MAIL SERVER PORT
If the SMTP server requires a custom port number, enter the value in this setting.
The default value is: 25
-->
<setting name="MailServerPort" value="587" />
这是日志中的错误:
6068 09:14:57 ERROR Failed to send analytics report
Exception: System.Net.Mail.SmtpException
Message: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. u9sm3416817eeh.17
Source: System
at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Sitecore.MainUtil.SendMail(MailMessage message)
at Sitecore.Analytics.Reports.ReportMailer.Mail(String exportedReportFileName, IEnumerable`1 recipients, String reportTitle, Boolean embedFile, Boolean deleteFile)
我知道它与gmail有关,需要某种安全连接,但我如何让Sitecore提供这个呢?
答案 0 :(得分:2)
消息:SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.0必须首先发出STARTTLS命令。
gmail需要TLS连接。可以尝试查看stunnel
。
无论如何,serverfault或superuser.com可能更合适。
答案 1 :(得分:2)
在8.2更新4中(不知道以前的更新/发布)有一个特殊的设置:
<setting name="MailServerUseSsl" value="true" />
答案 2 :(得分:1)
Sitecore.MainUtil中的SendMail函数没有将SmtpClient.EnableSsl设置为True的选项。目前,您似乎需要找到另一个要使用的SMTP服务器。
您可能希望将此记录为Sitecore的功能请求。
答案 3 :(得分:0)
我使用具有STARTTLS功能的电子邮件广告系列模块成功连接到GMAIL。 以下是我的设置:
<!--Set it to "true" if you want use the SMTP settings below. You should purchase the right of using the "UseLocalMTA" setting first.-->
<setting name="UseLocalMTA" value="true" />
<setting name="SMTP.Server" value="smtp.gmail.com" />
<setting name="SMTP.Port" value="587" />
<setting name="SMTP.LoginDomain" value="" />
<setting name="SMTP.UserName" value="user@gmail.com" />
<setting name="SMTP.Password" value="12345" />
<setting name="SMTP.AuthMethod" value="PLAIN" />
<setting name="SMTP.StartTLS" value="true" />