SMTP реле - изпращане на имейл от конзолно приложение

Възможно ли е да изпращате имейли от сървър, който използва smtp-relay чрез .net приложение.

Използвам app.config, за да получа действителните стойности на IP адреса на сървъра и адреса на изпращане, който имейлът трябва да използва.

Според IT-техника потребителското име и паролата за оторизация не трябва да са необходими, защото използва smtp-предаване. Компютърът, който ще изпрати имейла, е в списъка на smtp сървърите с валидни компютри.

Може ли това наистина да работи, не трябва ли да посочвам потребителското име/pwd?

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