EmailDiscussions.com  

Go Back   EmailDiscussions.com > Email Service Provider-specific Forums > FastMail Forum
Register FAQ Members List Calendar Today's Posts
Stay in touch wirelessly

FastMail Forum All posts relating to FastMail.FM should go here: suggestions, comments, requests for help, complaints, technical issues etc.

Reply
 
Thread Tools
Old 15 Sep 2010, 10:05 AM   #1
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Addressbook sync service available for testing

I've just released a test version of an addressbook-sync service. It works in my testing, but because this is an early version, you should either:
  • Backup your FM addressbook before using it, or
  • Test it using a separate account you create just for testing

The service syncs your FM address book with a GMail address book. This allows you in practice to sync your FM address book with iPhone, Blackberry, Outlook, etc! Here's how it works:
  1. Sign up for a GMail account - this is just to use as an sync intemediary, you don't actually ever have to use it for anything
  2. Set the sync service to sync FM with this GMail account
  3. Sync your Outlook, iPhone, etc with GMail's Contacts (check Google for how to do this)

You should ensure that your GMail Contacts list is empty before you first sync, otherwise you'll end up with duplicates (or, empty your FM contacts - if you already have contacts in both FM and GMail that you'd like to keep, have a look at this post: http://www.emaildiscussions.com/show...40&postcount=7 ). At this early testing stage, there's no way to schedule regular syncing - you have to click the 'sync' button manually.

Please note: The first sync can take 10 minutes or more, if your address book is large. Do not press Sync again while it's running, or you will definitely have problems. Also, be sure to leave at least a few minutes between each sync, even after it's finished.

The sync service is here: http://sync.howard.fm . You don't need to register for it - just use your FM username/password. The first time you use it, it will then ask you for your GMail username/password (although after that it will remember it).

Please give it a go, and let me know:
  • Did it work for you?
  • Was there any information that wasn't synced, or was synced to an odd field?
  • If you have a problem, try to find exactly which part of which contact is causing it, or what sequence of steps can replicate it

Known limitations:
  • Doesn't sync birth-dates
  • Doesn't sync custom fields, or fields that aren't available on both Google and FM

The more people who try it, the better! If you don't test it now, then I won't be able to fix any problems you find before I release it!

NB: this is not an official FastMail service, and is not supported by them. I wrote it for my own use, and am making it available to others in the hope it will be of some use.

Last edited by Jeremy Howard : 16 Sep 2010 at 04:19 PM. Reason: Move URL to sync.howard.fm
Jeremy Howard is offline   Reply With Quote

Old 15 Sep 2010, 10:08 AM   #2
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Oh by the way, if you get a server error, it should fill your screen up with lots of info (error message, stack trace, inner exception, etc...). If you see that, please copy the whole thing and paste it here, and let me know what happened when it occurred. When you paste it, use the little '#' button at the top of the forum-post window to wrap it in CODE tags.
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 11:37 AM   #3
nighthawk700
Essential Contributor
 
Join Date: Oct 2004
Location: Baltimore, MD Suburbs (US)
Posts: 237
Quote:
Originally Posted by Jeremy Howard View Post
You should ensure that your GMail Contacts list is empty before you first sync, otherwise you'll end up with duplicates. At this early testing stage, there's no way to schedule regular syncing - you have to click the 'sync' button manually.
If this part of the equation is ever removed, it'd be useful for me. Since I use an Android phone, I already have heavy use of a GMail account (for the contacts, calendar, etc., everything BUT the email service! ;-) ) It'd be nice to be able to sync between them without having to start from scratch.
nighthawk700 is offline   Reply With Quote
Old 15 Sep 2010, 03:25 PM   #4
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
Hello Jeremy,

already like how that sounds: "sync with FM"

I have a few questions before I even give it a try.

Will the following process work?

1. Delete all my FM contacts
2. Use an "empty" Google account
3. Sync my Outlook contact to Google
4. Now finally sync my contacts to FM
qwertz123456 is online now   Reply With Quote
Old 15 Sep 2010, 03:26 PM   #5
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
Oh and keep up the good work!

I know I'm pushing it here, but how about a Dropbox integration into FM
qwertz123456 is online now   Reply With Quote
Old 15 Sep 2010, 03:41 PM   #6
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Quote:
Originally Posted by qwertz123456 View Post
Will the following process work?

1. Delete all my FM contacts
2. Use an "empty" Google account
3. Sync my Outlook contact to Google
4. Now finally sync my contacts to FM
That should work just fine. Download all your FM contacts first, so you've got a backup in case you want to revert back. Please let us know how you go!

Re: Dropbox - what kind of integration did you have in mind?
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 03:45 PM   #7
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Quote:
Originally Posted by nighthawk700 View Post
If this part of the equation is ever removed, it'd be useful for me. Since I use an Android phone, I already have heavy use of a GMail account (for the contacts, calendar, etc., everything BUT the email service! ;-) ) It'd be nice to be able to sync between them without having to start from scratch.
OK, I think I have a solution for you. Please take backups first in case this doesn't work.

To Sync when you already have GMail and FM contacts:
  1. Download your FM addressbook (probably vCard / Mac OS X format would be best)
  2. Upload that file to GMail contacts
  3. Use GMail's "Duplicates" command to merge all your contacts together
  4. Delete all your FM contacts
  5. On the sync service screen, clear all sync state (if you've ever used it before)
  6. Sync!
It would be great if you could try this, and let us know how it turns out. It doesn't matter whether it's FM or GMail that's empty to start - it's just important to realise that on the first sync all contacts are copied in each direction, without attempting to merge duplicates.
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 03:51 PM   #8
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Quote:
Originally Posted by Jeremy Howard View Post
To Sync when you already have GMail and FM contacts:
BTW, I think FM's addressbook-import function automatically dedupes, so another approach would be to download your GMail addresses, upload them to FM, check they've merged OK, and then delete all your GMail addresses. Then you're ready to sync (making sure you've cleared sync state first, if you've ever synced before - otherwise those deletions will be synced over!)
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 04:22 PM   #9
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
Quote:
Originally Posted by Jeremy Howard View Post

Re: Dropbox - what kind of integration did you have in mind?
Well, utilizing the Dropbox space one feature I could think of would be to have a button at the bottom of the email compose screen and select a files from one's own Dropbox where you can also set the privileges of that file (public, private, password etc.). It then automatically insert the link to the email.
qwertz123456 is online now   Reply With Quote
Old 15 Sep 2010, 04:28 PM   #10
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Quote:
Originally Posted by qwertz123456 View Post
Well, utilizing the Dropbox space one feature I could think of would be to have a button at the bottom of the email compose screen and select a files from one's own Dropbox where you can also set the privileges of that file (public, private, password etc.). It then automatically insert the link to the email.
Ah, well I can't help with anything like that - I can't change anything in the web interface. I just use the public FM APIs like everyone else!

(Having said that - your FM web space is DAV and FTP accessible, and you can attach stuff from there directly to emails that you compose, so hooking in Dropbox isn't so important, IMO).
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 05:34 PM   #11
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
I found a bug! :-)

Server Error in '/' Application.
String or binary data would be truncated.
The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: String or binary data would be truncated.
The statement has been terminated.

Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

[SqlException (0x80131904): String or binary data would be truncated.
The statement has been terminated.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +404
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1363
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +58
System.Data.SqlClient.SqlDataReader.get_MetaData() +118
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +6312385
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +6313986
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +538
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +28
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +256
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +19
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +23
NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) +775
NHibernate.Id.InsertSelectDelegate.ExecuteAndExtract(IDbCommand insert, ISessionImplementor session) +83
NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) +129

[GenericADOException: could not insert: [FastServicesDotNet.Log][SQL: INSERT INTO [Log] (Message, User_id) VALUES (?, ?); select SCOPE_IDENTITY()]]
NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) +388
NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Object obj, ISessionImplementor session) +277
NHibernate.Action.EntityIdentityInsertAction.Execute() +208
NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +867
NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +261
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +49
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) +113
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) +330
NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) +395
NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj) +383
FastServicesDotNet.DbSyncLogger.Log(String message) in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\DbSyncLogger.cs:21
FastServicesDotNet.FmGoogleSync.DoNewGoog_(IEnumerable`1 newGoogContacts) in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\FmGoogleSync.cs:88
FastServicesDotNet.FmGoogleSync.Run() in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\FmGoogleSync.cs:49
FmSyncSvc.Controllers.HomeController.Sync() in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FmSyncSvc\Controllers\HomeController.cs:46
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +258
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +125
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +640
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +312
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +709
System.Web.Mvc.Controller.ExecuteCore() +162
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +58
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
qwertz123456 is online now   Reply With Quote
Old 15 Sep 2010, 05:41 PM   #12
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
Thanks for posting that. Should be fixed now. Can you please try again? Before you sync again, please:
  1. Delete all addresses from either FM or GMail
  2. Click the 'clear' link on the sync page to clear all your sync state
If you get the same problem again, please PM me the details.
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 06:13 PM   #13
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
Nope, didn't sync at all. Didn't get an error either. Waited for 10 min. to see if the contact would pop up in my FM, but no luck. I have approx. 600 contacts.
qwertz123456 is online now   Reply With Quote
Old 15 Sep 2010, 06:19 PM   #14
Jeremy Howard
Ultimate Contributor
 
Join Date: Sep 2001
Location: Australia
Posts: 11,501
It's logging correctly now, so I can see the error. The error is "Failed to insert to FM, Field 'Notes' contains disallowed character(s)". I'll try to work out what characters are allowed, and then clear invalid ones when syncing.

Also, I see that when one insert fails, all the following ones fail too, because the SOAP session gets interrupted - that's why nothing got copied over.

I'll let you know when this is fixed. Thanks for helping test!
Jeremy Howard is offline   Reply With Quote
Old 15 Sep 2010, 06:31 PM   #15
qwertz123456
Essential Contributor
 
Join Date: Jan 2008
Posts: 378
Tzzz...if that's all I have to do to test your product, I'm glad to You're doing all the work
qwertz123456 is online now   Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +9. The time now is 04:58 AM.

 

Copyright EmailDiscussions.com 1998-2022. All Rights Reserved. Privacy Policy