我正在使用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);
答案 0 :(得分:0)
您可以尝试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());
}