1

I have tried search everywhere for an answer on this as I can't believe it has only happened to me but can't seem to find anything.

I have a standard CDO email send function that works fine and up to about 3 months ago could reel off sending about 250 emails in probably less than 5 minutes. This was working off exchange 2003.

Then we upgraded our exchange server to 2010 and now my function that hasn't changed (apart from the ip address of the smtp server) pauses on the .send portion for around 15-30 seconds. I can only think this is something that has changed on the exchange end of things as I haven't changed anything but it makes the same macro take up to 2-4 hours to send all the emails now.

Has anyone else experienced this or know of what needs to be fixed on exchange to allow me to make my nice reports run quickly again?

Many Thanks

1 Answers1

0

Exchange 2010 Receive Connectors must be configured to receive incoming SMTP email, by default they will not otherwise there would be an open mail relay.

I suggest you verify the server will accept incoming SMTP from the workstation by opening a TELNET connection to the email server port 25 and try to manually send an email, for example:

  C: HELO myComputerName
  S: 250 smtp.theserverside.net Hello myComputerName [...] 
  C: MAIL FROM: me@TheServerSide.net
  S: 250 smtp.TheServerSide.net <me@TheServerSide.net> is syntactically correct 
  C: RCPT TP: you@TheServerSide.net
  S: 250 <you@TheServerSide.net> verified 
  C: DATA 
  S: 354 Enter message, ending with "." on a line by itself 
  C: Date: 1 April 04 10:30:42
  C: From: me@TheServerSide.net
  C: To: you@TheServerSide.net
  C: Subject: Say Hello
  C: Hello my friend! 
  C: And good bye! 
  C: . 
  S: 250 OK ID=1B3alH-0004ue-00 
  C: QUIT 
  S: 221 smtp.TheServerSide.net closing connection

If you need to make adjustments on Exchange be careful and test. The receive connectors are at Microsoft Exchange Management Console/MS Exchange On-Prem/Server Configuration/Hub Transport

Sam Russo
  • 422
  • 4
  • 8
  • Thanks for this, I ran through the commands and successfully sent an email with no issues, so I would assume that it is set up to receive over SMTP, is there any parameters on exchange that cause it to systematically put a delay between emails if receiving programatically as this is what is seems to do? – Paul Cannings Apr 13 '16 at 10:27
  • I think I may have found the command: Set-ReceiveConnector "Default Connector" -MaxAcknowledgementDelay 00:00:00 – Paul Cannings Apr 13 '16 at 14:19
  • You may want help from a mail admin for this. By default the Receive Connector will accept emails to your domain but reject emails for other domains, otherwise it would be an open mail relay. You mentioned upgrading from Exchange 2003 to 2010 and I believe that is one of the things that changed: Ex2003 was open relay by default, Ex2010 was not. You want to be careful with any changes you make on the receive connector to avoid weakening your security. You should also monitor the messages passing thru your server afterward.to be sure you are getting the results you want. – Sam Russo Apr 13 '16 at 19:19
  • If you have manually sent a test message (delay or not) then that probably verifies the server is willing to accept emails. If you sent the test to yourself (on your domain) then you may also want to try sending out to another domain if that is what your macro will do. You may find that it is rejected by default to avoid open relay. One way to open it up in a limited way is to allow relay from just the IP address running your macro - you can find this in the tabs of your receive connector. Again, be care here and monitor the results. – Sam Russo Apr 13 '16 at 19:24