[[PageOutline]] = Group Email = Refer to ticket #52 == Requirements == The instructor (or admin) should be able to send a group email A group can be: * Students registered in a course * Group members in a group * Each student Optional: * Email Template: User can make and use his/her own email template * Has ownership such as private, public, or shared among some group * Email merge: User can make a merge field such as name, email, or etc which are automatically filled when the mail is sent * Get Email Addresses: User can get email addresses of group and use copied email addresses with preferred email client. == Implementation == === Recipients === * Recipients list in "To" field will be: * Students registered in a course if user click "Email to All Students" on Course homepage * Group members in a group if user click "Email to All Members" on Group view page * Student if user click Email Icon next to student name on Group view or User index page. * Can add/remove additional recipients by doing similar way of adding instructors to a course. * Not allowing manually typed email address to prevent errors with Email merge system. === Email Template === * User can add/edit/delete/view own email templates * Can add merge fields on a template. === Email schedule === * Single/multiple schedule on email is possible. * Multiple schedule needs a number of times to send and interval(day(s), hour(s), or minute(s)) * Default schedule is current datetime. * User can view emails and cancel if email is not sent yet. * For better performance in user's view, all emails go to Email Schedule Database, then server will send emails that are ready by cron job. === Database Table === To import tables and data, check attached file, email.sql