#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());
}