Thursday, February 23, 2006

Adding Routes Using CMAK

I have just put together a Connection Manager VPN client (CMAK) and within it have specified the extra routing information that I needed. When I ran the client I got the following error message and could not find anything on the web with an answer, so here is the answer...

Error 1: Connect action to update your routing table failed (80070057) - shown in the VPN client

Error 2: ErrorCode = -2147024809 ErrorSource = to update your routing table - recorded in the VPN log file

The reason! It was because I had entered an incorrect routing record in the text file. So to get this right, add the routes manually when connected and make sure they work, and then duplicate these entries in the text file. If the routes cannot be added on the command line then the VPN connection will fail with the above error message.

Monday, February 13, 2006

P1 and P2 Headers in SMTP

P1 = the value on the MAIL FROM command of the SMTP connection (the message envelope) as defined in RFC 821.
P2 = the email address in the message body as defined in RFC 822. These include the FROM, REPLY TO and SENDER fields

For example, the following SMTP command sequence describes where P1 and P2 are used:

HELO server
MAIL FROM this_is@my_p1_address.com
RCPT TO: recipient@domain.com
DATA
FROM: this_is@my_p2_address.com
TO: recipient@domain.com
SUBJECT: This is a blog on P1 and P2

This is the text of the message
.

The MAIL FROM value should be your email address, but it does not have to be (ie one of the reasons why spam is so prevalent)
The FROM: header should match this, but this value is what is displayed in the email in Outlook (and other clients). The P1 address is used for routing and not display.

If the connection to an Exchange Server is anonymous then the P2 address will contain the display name and the email address, but if it is an authenticated connection then the P2 email address will be resolved to the value in the address book and this value will be displayed.

Thursday, February 02, 2006

Invalid Visibility When Sending Email in Microsoft CRM

Having recently installed Microsoft Dynamics CRM 3.0 I found that when I wanted to send an email to a contact in the system it failed with the error message "Invalid Visibility".

This error occurs because the code that sends the email does not complete successfully, and in my case because of anti-spam restrictions enabled on the Exchange Server that was being used as the SMTP gateway. The Exchange Server is the organisations only SMTP server, and the corporate firewall allows SMTP inbound and outbound only from this machine. Therefore this Exchange Server has a series of global message filters enabled which where activated on the SMTP virtual server on this machine. One of these anti-spam settings was to reject any mail on the SMTP virtual server that was from the domain name of the company and not authenticated. This stops lots of spam from outside the network that poses as if it where from inside the network, but as the CRM SMTP session was not authenticated, it too fell into this category.

So when CRM tried to send email, it received behind the scenes a 550 error - Sender Denied and so it generated the Invalid Visibility message.

Therefore, in this case, the fix was to authenticate the session, but alternatives exist such as providing a dedicated SMTP virtual server for the CRM application and additional routes outbound through the firewall for SMTP.

In addition to the above, the same error can be caused by other SMTP failures, so if you are getting the same error then open a command prompt on the CRM server and enter the following commands, waiting for an error and then using this to diagnose the reason why CRM 3.0 will not send emails for you (if anonymous email is allowed).

  TELNET smtp_server_name 25
  HELO crm_server_name
  MAIL FROM: email_address@yourdomain
  RCPT TO: recipient@externaldomain
  DATA
  TO: email_address@yourdomain
  FROM: recipient@externaldomain
  SUBJECT: CRM Test
blank line needed here
  Some text to act as the body of the message
  .
Always finish the email with a full-stop on a line on its own