У меня проблемы со старым классическим приложением ASP, где в коде используются уведомления о прочтении. Эта конкретная процедура успешно использовалась в течение нескольких лет, но недавно мы перешли на новый сервер с Windows 2008 r2, IIS 7.5 и клиентом SmarterMail 11.07. Теперь всякий раз, когда приложение пытается отправить электронное письмо, сгенерированное сервером, журналы SmarterMail показывают, что оно успешно получает и аутентифицирует отправку, но, похоже, прерывает или прерывает соединение без причины и не отправляет электронное письмо без каких-либо ошибок. Я в недоумении, потому что, как я уже сказал, эта процедура уже некоторое время работает без проблем, и если мы не выберем опцию «прочитать-получить» в приложении ASP, электронная почта будет распространяться нормально. Я включил сокращенную версию кода ниже и в основном искал подтверждение того, что код для всех предполагаемых целей должен работать как есть, и если кто-то может знать о подобных проблемах, связанных с этим, в самом SmarterMail, например, какой-то параметр безопасности по умолчанию, я не зная. Между прочим, если мы вручную используем интерфейс веб-почты SmarterMail, мы можем успешно отправлять почту с уведомлениями о прочтении, поэтому я знаю, что это должно быть возможно. - Большое спасибо!
Пример кода
set Mail = Server.CreateObject("CDO.Message")
'Basic configuration
Mail.AutoGenerateTextBody = 0
Mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strHost
Mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = strPort
Mail.Configuration.Fields.Update
Mail.Fields("urn:schemas:mailheader:X-Mailer") = "Custom EMailer"
Mail.Fields.update
'Priority
Mail.Fields("urn:schemas:mailheader:X-Priority") = emPriority
Mail.Fields("urn:schemas:mailheader:X-MSMail-Priority") = emPriorityTxt
Mail.Fields("urn:schemas:httpmail:importance") = emPriority
Mail.Fields.update
'Addressing
With Mail
.From = strFrom
.ReplyTo = strReplyTo
.To = strTo
.CC = strCc
.BCC = strBCc
End With
'Attachments
if len(sfls) > 0 then
if instr(1,sfls,",",1) > 0 then
strAttachments = split(sfls,",",-1,1)
else
strAttachments = sfls
end if
if isarray(strAttachments) then
for x = 0 to ubound(strAttachments)
Mail.AddAttachment strAttachments(x)
next
else
Mail.AddAttachment strAttachments
end if
end if
'Body
Mail.Subject = strSubject
if isHTML then
Mail.HTMLBody = strBody
else
Mail.TextBody = strBodyTxt
end if
'###################################################################
'If this section is included the email will not send, times out or
'connection is terminated, according to the SmarterMail logs
'###################################################################
' Read/Delivery Receipt
if isRead then
Mail.Fields("urn:schemas:mailheader:disposition-notification-to") = rrReplyTo
Mail.Fields("urn:schemas:mailheader:return-receipt-to") = rrReplyTo
Mail.DSNOptions = 14
Mail.Fields.Update
end if
'###################################################################
'Send Message
strErr = ""
bSuccess = False
On Error Resume Next
Mail.Send
If Err <> 0 Then
strErr = Err.Description
else
bSuccess = True
End If
set Mail = nothing
============================================================