У меня есть устаревшая кодовая база VB6, которую я хотел бы расширить, чтобы включить поддержку отправки сообщений через внешний SMTP-сервер (smtp.live.com).Не удается отправить почту через SMTP из программы VB6
Я использую CDO для отправки почты. Моя машина работает под управлением Windows 7. К сожалению, при попытке отправить отправку почты я получил сообщение об ошибке «Транспорт не подключился к серверу». Ниже приведен код.
VB6
Dim oNewMessage As CDO.Message
Dim iConf As New CDO.Configuration
Dim oFlds As ADODB.Fields
Dim strbody As String
On Error GoTo errSMPT
iConf.Load cdoDefaults
Set oFlds = iConf.Fields
oFlds(cdoSendUsingMethod) = cdoSendUsingPort
oFlds(cdoSMTPServer) = "smtp.live.com"
oFlds(cdoSMTPServerPort) = 587
oFlds(cdoSMTPConnectionTimeout) = 30
oFlds(cdoSMTPUseSSL) = True
oFlds(cdoSMTPAuthenticate) = cdoBasic
oFlds(cdoSendUserName) = "[email protected]"
oFlds(cdoSendPassword) = "mypassword"
oFlds.Update
strbody = "Sample message " & Time
Set oNewMessage = New CDO.Message
Set oNewMessage.Configuration = iConf
With oNewMessage
.To = txtTo.Text
.From = txtFrom.Text
.Subject = "subject"
.TextBody = strbody
.Send
End With
Exit Sub
errSMPT:
MsgBox Err.Description
Я не думаю, что проблема связана с межсетевым экраном или вопросы безопасности учетной записи, так как # код C ниже работает без каких-либо проблем.
C#
using (MailMessage message = new MailMessage(txtFrom.Text, txtTo.Text, txtSubject.Text, txtText.Text))
{
SmtpClient mailClient = new SmtpClient("smtp.live.com", 587);
mailClient.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword");
mailClient.EnableSsl = true;
mailClient.Send(message);
MessageBox.Show("Message successfully sent!!!");
}
Любая помощь приветствуется!
Благодаря
// Питер
Знаете ли вы, что версия VB использует ssl? – Rob
Если это может быть полезно, ваш код отлично подходит для меня при отправке с учетной записью Gmail (smtp.googlemail.com на TCP/465), так же как с моим собственным кодом, который использует CDO. Тем не менее, я никогда не мог отправлять электронную почту через CDO с помощью учетной записи Live/Hotmail/Outlook.com (на этот раз попробовал еще раз, на всякий случай, без успеха). – johnwait