Невозможно установить соединение, потому что целевая машина активно отказалась от него - PullRequest
0 голосов
/ 17 августа 2010

Я в процессе обновления своих веб-страниц с asp classic до asp.net. Мой предыдущий код использовал CDO для отправки электронных писем.

sch = "http://schemas.microsoft.com/cdo/configuration/" 
                Set cdoConfig = CreateObject("CDO.Configuration") 

                    With cdoConfig.Fields 
                        .Item(sch & "sendusing") = 2 
                        .Item(sch & "smtpserver") = "mail.mydomain.com" 
                        .update 
                    End With 

                Set cdoMessage = CreateObject("CDO.Message") 

                    strTo = "toaddr@mydomain.com"

                strFrom = "fromaddr@mydomain.com"

                strSubject = "email subject"
                strBody = strBody & "This is the email body"


                With cdoMessage 
                        Set .Configuration = cdoConfig 
                        .From = strFrom
                        .To =  strTo
                        .Subject = strSubject
                        .HTMLBody = strBody
                        .Send 
                End With

                Set cdoConfig = Nothing
                Set cdoMessage = Nothing

Этот код работает нормально, но я хотел бы отправлять электронные письма со своих страниц asp.net. Когда я отправляю со страниц .net, я получаю сообщение об ошибке: «Невозможно установить соединение, потому что целевая машина активно отказала ему в этом.

Мои настройки web.config:

<system.net>
    <mailSettings>
        <smtp from="myemail@mydomain.com">
            <network host="mail.mydomain.com" port="2"/>
        </smtp>
    </mailSettings>
</system.net>

И фрагмент кода, который дает мне ошибку:

        Dim mailmsg As New MailMessage("myemail@mydomain.com", txtSubmitterEmail.Text)

        mailmsg.Subject = "subject here"
        mailmsg.Body = "mail body here"
        mailmsg.IsBodyHtml = True

        Dim smtp As New SmtpClient

        smtp.Send(mailmsg)

Я довольно новичок в .Net, но искал несколько часов и не могу найти причину, по которой старый код работает, а новый - нет. Заранее спасибо за помощь!

1 Ответ

3 голосов
/ 17 августа 2010

SMTP-сервер, к которому вы хотите подключиться, вероятно, находится на порту 25.

<network host="mail.mydomain.com" port="25"/>

Это отличается от директивы sendusing.

...