Ретранслятор SMTP - отправка электронной почты из консольного приложения

Можно ли отправлять электронную почту с сервера, использующего smtp-relay, через приложение .net.

Я использую app.config, чтобы получить фактические значения ex IP-адреса сервера и адрес отправителя, который должен использовать электронная почта.

По словам айтишника, логин и пароль для авторизации не нужны, так как используется smtp-relay. Компьютер, который будет отправлять электронную почту, находится в списке допустимых компьютеров smtp-servers.

Может ли это на самом деле работать, мне не нужно указывать имя пользователя/пароль?

try
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient(_smtpserver);
    mail.From = new MailAddress(_fromAdress);
    mail.To.Add(_toAdress);
    mail.Subject = _subject;
    mail.Body = _body;
    mail.Priority = MailPriority.High;
    SmtpServer.Port = Convert.ToInt32(_port);
    SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword);
    SmtpServer.EnableSsl = true;
    SmtpServer.Send(mail);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

person user601496    schedule 24.09.2012    source источник
comment
Чтобы расширить точку зрения @Lloyd, вы должны попробовать. Если это не удается, вернитесь и задайте вопрос о конкретной ошибке, если вы застряли.   -  person Fenton    schedule 24.09.2012
comment
Да, иногда гораздо проще просто попробовать эти вещи, чем спрашивать здесь. Обычно быстрее узнаешь :)   -  person Lloyd    schedule 24.09.2012
comment
У вас больше шансов получить помощь, если вы примете ответы на свои старые вопросы.   -  person Stealth Rabbi    schedule 24.09.2012
comment
Код работает, когда я использую его в своей учетной записи gmail, но не работает, когда я пытаюсь использовать сервер ретрансляции внутри нашей сети. Компьютер, на котором выполняется приложение, добавляется в список компьютеров, прошедших проверку подлинности сервера ретрансляции.   -  person user601496    schedule 25.09.2012


Ответы (3)


В своем фрагменте вы указываете учетные данные

SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword);

Вы можете удалить эту строку, и она все равно будет работать, если реле SMTP настроено, как вы сказали.

person Anri    schedule 24.09.2012

в вашем случае, если вы устанавливаете свое имя пользователя и пароль в webconfig, даже тогда вам нужно вызвать его, как указано выше. но если вы используете свои почтовые учетные данные по умолчанию, они будут выбраны автоматически.. и если вы используете другой почтовый клиент для отправителя, вам необходимо передать учетные данные..

person user1102001    schedule 24.09.2012

у меня была такая же ситуация. У меня такой же код ошибки. Я заметил, что использовал system.web.mail. Но мое приложение является консольным приложением. Я сменил библиотеку, использовал system.net.mail. И это работает сейчас.

person muzaffer    schedule 06.04.2020