Campaign Monitor newsletter service is, in my opinion, top of its class, so I became excited when I found two Drupal modules that use the Campaign Monitor API. One module gives you the basics for users to sign-up on your website, and the more advanced module allows you to map website fields to existing ones set up on the Campaign Monitor website. I would recommend only enabling one at a time.
The "Campaign Monitor
" Drupal module is very straight-forward. After installing/enabling the module, you go to Site Configuration > Campaign Monitor to fill out the form fields for API keys that Campaign Monitor gives you for integration with 3rd party systems. You can also enable newsletter sign-up checkboxes to appear on the forms on your site, including the Registration form. Upon save, next step is to place the "Join Newsletter" block in one of your regions.
The "Campaign Monitor Advanced
" module gives you much more power and integration with your Campaign Monitor setup. Once you enter your API key/Client ID under Site Configuration > Campaign Monitor > Info, you will want to run cron to pull in your Campaign Monitor info, then go to Site Building > Campaign Monitor to manage your subscriber lists.
The power lies in the mapping of fields. For example, if you wanted to send a newsletter that references a user's Drupal username on your website, you would want to create a new field on the Campaign Monitor website first, then go back to your Drupal website and map the [user-name] token to the new Campaign Monitor field. Enabling the "Ask Anonymous" checkbox will prompt anonymous users to enter a value in the chosen field, since they would not have a user name in the system. There are specific blocks created per subscriber list, but also a common block for users to check multiple lists in which to subscribe.
You may also want to try out other features the Campaign Monitor Advanced module offers: user unsubscribes from your website, php code for mapping of fields, various configuration options, etc.