2010-09-16 4 views
1

Я пытаюсь отправить Sitecore сообщения через gmail-аккаунт, но он не будет работать. Это мои настройки в web.config:Отправка сообщений Sitecore через Gmail

<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="[email protected]" /> 
    <!-- 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?

ответ

2

Сообщение: Для SMTP-сервера требуется защищенное соединение, или клиент не прошел аутентификацию. Ответ сервера: 5.7.0. Сначала необходимо выполнить команду STARTTLS.

gmail требует подключения TLS. Можно попробовать посмотреть на stunnel.

В любом случае, serverfault или superuser.com, вероятно, более уместны.

+0

Спасибо, Stunnel работал как шарм! – Zooking

1

Функция SendMail в Sitecore.MainUtil не имеет возможности установить для параметра SmtpClient.EnableSsl значение True. Пока, похоже, вам нужно будет найти другой SMTP-сервер для использования.

Возможно, вы захотите зарегистрировать это как запрос функции с Sitecore.

0

Я успешно подключаюсь к GMAIL с помощью модуля электронной почты, который имеет функцию STARTTLS. Вот мои настройки:

 <!--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="[email protected]" /> 
    <setting name="SMTP.Password" value="12345" /> 
    <setting name="SMTP.AuthMethod" value="PLAIN" /> 
    <setting name="SMTP.StartTLS" value="true" /> 
+0

Можете ли вы использовать ECM для отправки запланированных писем от OMS? – Zooking

+1

только через настройку. Я вижу команду analytics: emailreport в Analytics.Config. Вы можете переопределить его и отправить электронное письмо от ECM программным путем, используя следующий код: var message = Sitecore.Modules.EmailCampaign.HtmlMail.FromItem (messageItem); message.CollectRelativeFiles(); message.Body = ReplaceTokens (message.GetMessageBody(), поля); message.To = to; message.Subject = ReplaceTokens (message.Subject, fields); var manager = новый AsyncSendingManager (сообщение); manager.SendQuickTestMessage(); –

0

В 8.2 обновлении 4 (не знает о предыдущих обновлениях/релизах) есть специальные настройки для этого:

<setting name="MailServerUseSsl" value="true" /> 
Смежные вопросы