Товарищи, здравствуйте!
Я делаю свой личный сайт, собираюсь использовать этот движок.
Прекрасная вещь. Большое спасибо создателям.
Столкнулся вплотную с той проблемой, о которой вы тут беседуете. Не смог отправлять письма со своего аккаунта на gmail
из-за SSL. Все изменения в настройках конфига, которые вы предлагаете пробовал - не помогло. Не соединяется и всё. Также в файле исходника SendMail.cs в функции Send(...) писал
Код:
smtpSend.EnableSsl = true;
и ничего.
Короче, пришлось переписать заново всю функцию Send(...). Теперь работает абсолютно всё и посылает сообщения на всех языках, включая даже иврит!
Предлагаю свою рабочую версию этой функции:
Код:
static public void Send(System.Net.Mail.MailAddress fromAddress, System.Net.Mail.MailAddress toAddress,
string subject, string bodyText, string bodyHtml )
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup mailSettings = config.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
System.Web.Mail.MailMessage Mail = new System.Web.Mail.MailMessage();
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"] = mailSettings.Smtp.Network.Host;
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"] = 2;
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpserverport"] = mailSettings.Smtp.Network.Port.ToString();
//Включить SSL!!!
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpusessl"] = "true";
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = mailSettings.Smtp.Network.UserName;
Mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = mailSettings.Smtp.Network.Password;
Mail.To = toAddress.Address;
Mail.From = fromAddress.Address;
Mail.Subject = subject;
Mail.Body = (String.IsNullOrEmpty(bodyHtml) ? "<html>" + bodyText + "</html>" : bodyHtml);
Mail.BodyFormat = System.Web.Mail.MailFormat.Html;
System.Web.Mail.SmtpMail.SmtpServer = mailSettings.Smtp.Network.Host;
System.Web.Mail.SmtpMail.Send(Mail);
}
Предварительно надо написать в заголовке файла
Код:
using System.Configuration;
using System.Web.Configuration;
using System.Net.Configuration;
Скомпилируйте YAF.Classes.Utils.dll и занесите новую версию в директорию bin сайта. Всё.
Этот код конечно же тоже использует настройки из mail.config вашего сайта.
Код:
<smtp from="от кого" deliveryMethod="Network">
<network host="smtp.gmail.com" port="465" password="ваш пароль" userName="ваше имя" />
</smtp>
Здесь не требуется допольнительных настроек конфигурации для SSL!
Недостатком метода можно считать, что при такой версии метода Send(...) посылается только почта с серваков с SSL.
Но у меня не стояло другой задачи просто. Может раработчик и подумает как внедрить этот метод не для SSL.
Буду рад слушать ваши отзывы и рацпредожения.