При отправке писем с помощью данного метода, письмо отправляются только на доменные п/я. При попытке отправить на иные (Google, Mail.ru) выдаёт Exception
System.Security.Authentication.AuthenticationException: "Удаленный сертификат недействителен согласно результатам проверки подлинности." При подобных исключениях, советовали на callback сервера, передавать true (соглашаясь, что сертификат может быть не действительным). При использовании этого кода (закоменчены несколько вариантов), возвращается
System.Net.Mail.SmtpFailedRecipientsException: "Не удалось отправить всем получателям." SmtpFailedRecipientException: Почтовый ящик недоступен. Отклик сервера: 5.7.54 SMTP; Unable to relay recipient in non-accepted domainЕсли этот де код использовать для отправки с mail.ru или google, исключений не возникает.
Просьба подсказать, где имеются ошибки или иные варианты решения. Заранее спасибо.
<pre>
using System;
using System.Globalization;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Windows.Forms;
using Attachment = System.Net.Mail.Attachment;
using System.Threading;
using System.Security.Cryptography.X509Certificates;
namespace TestProg.DocSearchByParams.SystemMethods
{
internal class MailSenderClass
{
private static void MailTo()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
var fromMailAddress = new MailAddress("mail@from.ru", "test");
var adr = new string[] {"mail11@mail.ru", "mail22@gmail.com" };
using (var smtp = new SmtpClient())
{
var message = new MailMessage
{
From = fromMailAddress
};
foreach (var P in adr)
{
message.To.Add(new MailAddress(P));
}
message.Subject = "Тема + неделя: "
+ DateTime.Now.AddDays(-7) + " - "
+ DateTime.Now;
message.Body = "Тело";
var attach = @"F:\VS2017\Документ от " + DateTime.Now.ToShortDateString() + ".xlsx";
//message.Attachments.Add(new Attachment(attach));
smtp.Host = "mail.esphere.ru";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Timeout = 30000;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential(fromMailAddress.Address, "Password");
/* Попытки избавиться от Exception "Сертификат не действителен"
* ServicePointManager.ServerCertificateValidationCallback =
* delegate (object sender, X509Certificate certificate, X509Chain chain,
* SslPolicyErrors sslPolicyErrors)
* { return true; };
*/
/*
* System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
*ServicePointManager.ServerCertificateValidationCallback =
* delegate (object s, X509Certificate certificate,
* X509Chain chain, SslPolicyErrors sslPolicyErrors)
* { return true; };
*/
//ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
smtp.Send(message);
message.Dispose();
smtp.Dispose();
}
}
</pre>
@de_frag Спасибо, проблема решена, в
NetworkCredential(username, "Password")
передал domen/username как в почтовых клиентах
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Создал собственный Control для всех кнопок, чтобы все кнопки имели графический видПример кода:
У MetroMessageBox нет метода ShowMetroFrameWork установлен и подключен
Как контролировать изменение дизайна при изменении длины слов? На некоторых языках слова очень длинные в переводе, как сохранить дизайн...