Код, который я использую для отправки писем, работал, но внезапно перестал работать. Это дает мне сообщение об ошибке «Почтовый ящик недоступен. Ответ сервера: SMTP AUTH требуется для отправки сообщения через порт 587». Я зацикливаюсь на списке клиентов и хочу отправлять электронные письма, в них есть изображение, встроенное в них
Пока я пытался найти причину проблемы, я изменил модификатор доступа с защищенного на частный - то есть, когда он выдавал ошибку «Недопустимое имя helo», когда я остановился и снова запустил проблему, он возвращается говоря "SMTP AUTH требуется для отправки сообщения через порт 587".
private void sendHtmlEmail(string from_Email, string to_Email, string body, string from_Name, string Subject, string SMTP_IP, Int32 SMTP_Server_Port, string Email_ImageFilePath)
{
using (MailMessage mail = new MailMessage())
{
mail.IsBodyHtml = true;
using (AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, null, "text/html"))
{
using (LinkedResource theEmailImage = new LinkedResource(Email_ImageFilePath))
{
theEmailImage.ContentId = "myImageID";
//Add the Image to the Alternate view
htmlView.LinkedResources.Add(theEmailImage);
//Add view to the Email Message
mail.AlternateViews.Add(htmlView);
//set the "from email" address and specify a friendly 'from' name
mail.From = new MailAddress("myemail@fff.co.za");
//set the "to" email address
mail.To.Add(to_Email);
//set the Email subject
mail.Subject = Subject;
//set the SMTP info
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("myemail@fff.co.za", "password");
SmtpClient smtp = new SmtpClient("mail.fff.co.za", 587);
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = cred;
smtp.Send(mail);
}
}
}
}