As you suggested in your question, to avoid retain cycle you just need to make your helper object's mailComposeDelegate property a weak property.
@interface MyViewController : UIViewConroller
@property(nonatomic, strong) MyHelperEmailObjectClass *emailHelper;
@end
@interface MyHelperEmailObjectClass : NSObject
@property(nonatomic, weak) id<MFMailComposeViewControllerDelegate> mailComposeDelegate;
@end
You would get a retain cycle if the objects had eachother assigned to strong properties.