Электронные письма, не отправляемые из smtp.zoho.com в c#

#c# #asp.net-mvc #zoho

#c# #asp.net-mvc #zoho

Вопрос:

Я использую почтовый сервер ZOHO для отправки электронных писем через мое приложение. Но это выдает следующую ошибку — «Серверу SMTP требуется безопасное соединение или клиент не прошел проверку подлинности. Ответ сервера был: Требуется аутентификация 5.5.1.»

             MailMessage msg = new MailMessage();
            msg.To.Add(new MailAddress("xxx@xx.com"));
            msg.Bcc.Add(new MailAddress("xxx@xx.com"));
            msg.From = new MailAddress("xxx@xx.com", "Test mail");
            msg.Subject = "send mail";
            msg.Body = "test MAIL....";
            msg.IsBodyHtml = true;
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.zoho.com";
            client.Credentials = new System.Net.NetworkCredential("xx@xx.com", "XXX");
            client.Port = 587;
            client.EnableSsl = true;
            client.Send(msg);
  

Комментарии:

1. Кажется, что учетные данные сети неверны. Можете ли вы, пожалуйста, проверить это?

Ответ №1:

Вы можете попробовать zoho mail api https://www.zoho.com/mail/help/api /

Я использовал это в своем старом проекте.

Хотя и медленно, но решает проблему:

 private static void SendMail()
{
    const string WEBSERVICE_URL = "https://mail.zoho.com/api/accounts/{id}/messages";
    try
    {
        var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
        if (webRequest != null)
        {
            webRequest.Method = "POST";
            webRequest.Headers.Add("Authorization", "{token}}");
            webRequest.ContentType = "application/json";

            using (var streamWriter = new StreamWriter(webRequest.GetRequestStream()))
            {
                string json = "{"fromAddress": "{email}}","  
                                ""toAddress": "{email}}","  
                                ""subject": "subject","  
                                ""content": "content"}";

                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
            }

            var httpResponse = (HttpWebResponse)webRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                Console.WriteLine(String.Format("Response: {0}", result));
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }