Я пытаюсь отправить электронное письмо в консольном приложении .NET. У меня есть SMTP-сервер с i.P. адрес X.X.X.X (продезинфицирован для защиты невиновных).
SMTP-сервер настроен (ретранслятор настроен), чтобы разрешить отправку электронной почты с сервера, на котором размещено консольное приложение .NET, и отправить эту электронную почту во внешний мир.
Я проверил это с помощью telnet с сервера, на котором размещено консольное приложение. Я успешно отправил электронное письмо с помощью консоли telnet с сервера, на котором размещено консольное приложение, используя IP-адрес SMTP-сервера. адрес. При использовании telnet аутентификация не требуется. Мне не дали никаких учетных данных для подключения.
Но когда я пытаюсь сделать это в приложении .NET, я получаю следующую ошибку:
Ошибка синтаксиса, команда не распознана. Ответ сервера был: : Команда Helo отклонена: нужно полное имя хоста
Вот мой код:
string mailMessagetest = "test";
string subjecttest = "test";
List<string> recipienttest = new List<string>();
recipienttest.Add("[email protected]");
utility.SendMail(recipienttest, subjecttest, mailMessagetest);
Вот функция SendMail:
public static void SendMail(List<string> recipient, string subject, string message)
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("[email protected]");
foreach (string to in recipient)
{
mailMessage.To.Add(to);
}
mailMessage.Subject = subject;
mailMessage.Body = message;
SmtpClient client = new SmtpClient();
client.Host = "X.X.X.X";
client.Port = 25;
client.Send(mailMessage);
}