MailMessage problem - Could not access 'CDO.Message' object.

A

Anthony Fine

Hello All,

I have a VB.Net app that needs to send mail. I have created a class for
building my e-mail, but keep getting the error (Could not access
'CDO.Message' object.) when trying to send it. I can succesfully send an
e-mail when I use the CreateObject("CDO.Message") method, but it fails when
trying to send using VB.Net. My code is below, I have included three
different ways that I have tried it, and both VB.Net options fail, any help
will be greatly appreciated.

--
Thank you,

Anthony Fine


'// VB 6.0 - This works fine...
'***********************************************
Private Sub Form_Load()
Dim iNewMsg As Object
Set iNewMsg = CreateObject("CDO.Message")
iNewMsg.To = "(e-mail address removed)"
iNewMsg.From = "(e-mail address removed)"
iNewMsg.Subject = "Test"
iNewMsg.TextBody = "Hello..."
iNewMsg.Send
Set iNewMsg = Nothing
End Sub
'***********************************************

'// VB.Net - This fails...
'***********************************************
Imports System.Web.Mail
Imports System.Web.Mail.SmtpMail

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim iMsg As New MailMessage
Dim srv As SmtpMail
iMsg.To = "(e-mail address removed)"
iMsg.From = "(e-mail address removed)"
iMsg.BodyFormat = MailFormat.Text
iMsg.Body = "Testing..."
iMsg.Subject = "Test..."
srv.SmtpServer = "myServer"
srv.Send(iMsg)
End Sub
End Class
'***********************************************

'// VB.Net - This fails as well...
'***********************************************
Imports System.Web.Mail
Imports System.Web.Mail.SmtpMail

Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim newMail As New emailMessage
newMail.EmailTo = "(e-mail address removed)"
newMail.EmailFrom = "(e-mail address removed)"
newMail.EmailBodyFormat = MailFormat.Text
newMail.EmailBody = "Testing..."
newMail.EmailSubject = "Test..."
newMail.EmailServer = "myServer"
newMail.sendEmail()
newMail = Nothing
End Sub

End Class

Class emailMessage
Dim iMail As New MailMessage
Dim _to As String
Dim _from As String
Dim _server As SmtpMail
Dim _subject As String
Dim _body As String
Dim _bodyFormat As System.Web.Mail.MailFormat
Dim myServer As String

Public Property EmailTo() As String
Get
iMail.To = _to
End Get
Set(ByVal Value As String)
_to = Value
End Set
End Property

Public Property EmailFrom() As String
Get
iMail.From = _from
End Get
Set(ByVal Value As String)
_from = Value
End Set
End Property

Public Property EmailServer() As String
Get
_server.SmtpServer = myServer
End Get
Set(ByVal Value As String)
myServer = Value
End Set
End Property

Public Property EmailSubject() As String
Get
iMail.Subject = _subject
End Get
Set(ByVal Value As String)
_subject = Value
End Set
End Property

Public Property EmailBody() As String
Get
iMail.Body = _body
End Get
Set(ByVal Value As String)
_body = Value
End Set
End Property

Public Property EmailBodyFormat() As System.Web.Mail.MailFormat
Get
iMail.BodyFormat = _bodyFormat
End Get
Set(ByVal Value As System.Web.Mail.MailFormat)
_bodyFormat = Value
End Set
End Property

Public Sub sendEmail()
_server.Send(iMail)
End Sub
End Class
'***********************************************
 
M

Mike Bulava

Make sure you are setting the SMTP server property to a Valid SMTP Server
that doesn't require authentication. Or you will have to install IIS on to
your workstation..
 
A

Anthony Fine

Mike,

Thanks for the response. I was able to successfully send an e-mail using VB
6.0 by using the CreateObject method. If the SMTP server was the problem,
wouldn't that prevent me from sending e-mail from VB 6.0 as well?

Thanks,
Anthony
 
J

Jure Spik

I have sucessfully sent mail using >>
<%@ Page Language="JScript" %>
<%@ import Namespace="System.Web.Mail" %>

<HTML>
<head>
<script runat='server'>
function Page_Load() {
var Mailer : MailMessage = new MailMessage();
Mailer.From = "[email protected]";
Mailer.To = "[email protected]";
Mailer.Subject = "subject";
Mailer.Body = "body";

try {
SmtpMail.SmtpServer = "smtp.some.smtp.server";
SmtpMail.Send(Mailer);
mStatus.Text += "Mail sent to " + Mailer.To + "<br />";
} catch (e : Exception) {
mStatus.Text += ("<p>Could not send mail because:<br /><div
style='font-size:70%;'>" + e.ToString() + "</div><br />If you think this is
an error contact the administrator.</p>");
}
Mailer = null;
}
</script>
</head>
<body>
<asp:Label runat='server' id='mStatus' />
</body>
</HTML>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,709
Latest member
AustinMudi

Latest Threads

Top