Sachverhalt: A. Der Amtsgerichtspräsident von Bucheggberg-Wasseramt verurteilte X._ am 7. Februar 2013 zu einer bedingten Geldstrafe von 120 Tagessätzen zu Fr. 70.- wegen mehrfacher Widerhandlung gegen das Betäubungsmittelgesetz. Gegen dieses Urteil meldete X._ am 19. Februar 2013 fristgerecht die Berufung an. Das begründete Urteil wurde ihm am 29. April 2013 zugestellt. X._ übergab die schriftliche Berufungserklärung der Post am 21. Mai 2013. Das Obergericht des Kantons Solothurn trat auf das Rechtsmittel am 1. Juli 2013 nicht ein. Es erachtete die Berufungserklärung vom 21. Mai 2013 als verspätet. B. Mit Beschwerde in Strafsachen beantragt X._, den Beschluss vom 1. Juli 2013 aufzuheben und die Strafkammer des Obergerichts des Kantons Solothurn anzuweisen, auf die Berufung einzutreten. C. Das Obergericht des Kantons Solothurn beantragt, die Beschwerde abzuweisen. Die Staatsanwaltschaft verzichtet auf eine Vernehmlassung. X._ wurde das Replikrecht gewährt. 