Ok, I think the additional connector is a red herring as I've removed it and restarted the Exchange Transport connector and I still get the same error.
So now I have a client connector listening on port 587 with permission group Exchange Users and the ISP connector listening on port 25 with permission groups set to anonymous users.
The access database contains 2 email addresses, my school address and my home address.
Here's the code and to recap I only get the error when sending to an external address:
Code:
Protected Sub SendButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SendButton.Click
'Create a connection string
Dim connString As String
connString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=C:\Inetpub\Newsletter\Newsletter-test.mdb;"
'Open a connection
Dim objConnection As OleDbConnection
objConnection = New OleDbConnection(connString)
objConnection.Open()
'Specify the SQL string
Dim strSQL As String = "SELECT Name, Email_Address FROM tblMembers"
'Create a command object
Dim objCommand As OleDbCommand
objCommand = New OleDbCommand(strSQL, objConnection)
'Get a datareader
Dim objDataReader As OleDbDataReader
objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
Dim i As Integer
Dim sName As String
Dim mailServerName As String = "gc"
Dim too As String
Dim from As String = "newsletter@someaddress.com"
Dim subj As String = "Latest newsletter"
Dim body As String
Dim sendcount As Integer = 0
While objDataReader.Read
For i = 0 To (objDataReader.FieldCount - 1) Step 2
sName = objDataReader.GetValue(i)
too = objDataReader.GetValue(i + 1)
body = "Insert message here"
Dim message As MailMessage = New MailMessage(from, too, subj, body)
Dim mailClient As SmtpClient = New SmtpClient
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network
message.IsBodyHtml = False
mailClient.Host = mailServerName
mailClient.Send(message)
message.Dispose()
sendcount += 1
Next
End While
'Close the datareader/db connection
objDataReader.Close()
ProgressLabel.Text = "Finished sending. Sent to " & Convert.ToString(sendcount) & " recipients"
End Sub