{"id":2719,"date":"2011-02-03T12:53:14","date_gmt":"2011-02-03T07:23:14","guid":{"rendered":"https:\/\/2thenew.today\/blog\/?p=2719"},"modified":"2016-12-19T15:04:08","modified_gmt":"2016-12-19T09:34:08","slug":"mail-plugin-with-db-driven-configuration","status":"publish","type":"post","link":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/","title":{"rendered":"Grails Mail Plugin with DB Driven configuration"},"content":{"rendered":"<p>We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their own customized emails and use their email credentials for sending of mails.<\/p>\n<p>After searching a lot for such a solution, we found that such a <a title=\"TO THE NEW Grails Developers Team\" href=\"https:\/\/2thenew.today\/grails-application-development\">use case has arisen for quite a few developers<\/a>.<\/p>\n<p>Another demand was that a mail service provider like GMail be used to send emails instead of using a mail server like Postfix of Sendmail.<\/p>\n<p>What we came up was a modified version of the grails mail plugin, which works with DB driven mail configurations. It defaults to Config.groovy it it fails to fetch the MailConfig domain object based on the from address,\u00a0 which we usually in the sendMail() method. The plugin makes use of a customMailSender bean, which is actually a copy of the mailSender bean which gets built from Config.groovy, but can be modified in a thread safe environment with values fetched from the DB.<\/p>\n<p>The plugin is still in its infancy, but you can download the plugin and its source code <a href=\"https:\/\/github.com\/vivek-krishna\/grails-mail\" target=\"_blank\">here<\/a>. You can read the documentation <a href=\"https:\/\/github.com\/vivek-krishna\/grails-mail\/wiki\/Grails-DB-Driven-Mail-Plugin-Documentation\" target=\"_blank\">here.<\/a><\/p>\n<p>Hope you find this useful<\/p>\n<p>Vivek<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":11,"footnotes":""},"categories":[7],"tags":[4840,512,511,513,510,65],"class_list":["post-2719","post","type-post","status-publish","format-standard","hentry","category-grails","tag-grails","tag-grails-mail","tag-grails-plugin","tag-grails-plugin-enhancement","tag-mail-plugin","tag-plugins"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Vivek Krishna\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"article:tag\" content=\"grails\" \/>\n\t\t<meta property=\"article:tag\" content=\"grails mail\" \/>\n\t\t<meta property=\"article:tag\" content=\"grails plugin\" \/>\n\t\t<meta property=\"article:tag\" content=\"grails plugin enhancement\" \/>\n\t\t<meta property=\"article:tag\" content=\"mail plugin\" \/>\n\t\t<meta property=\"article:tag\" content=\"plugins\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2011-02-03T07:23:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-12-19T09:34:08+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#article\",\"name\":\"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog\",\"headline\":\"Grails Mail Plugin with DB Driven configuration\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"datePublished\":\"2011-02-03T12:53:14+05:30\",\"dateModified\":\"2016-12-19T15:04:08+05:30\",\"inLanguage\":\"en-US\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#webpage\"},\"articleSection\":\"Grails, Grails, grails mail, grails plugin, grails plugin enhancement, mail plugin, plugins\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"position\":2,\"name\":\"Grails\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#listItem\",\"name\":\"Grails Mail Plugin with DB Driven configuration\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#listItem\",\"position\":3,\"name\":\"Grails Mail Plugin with DB Driven configuration\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/grails\\\/#listItem\",\"name\":\"Grails\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/\",\"name\":\"Vivek Krishna\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Vivek Krishna\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/\",\"name\":\"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog\",\"description\":\"We have been coming across a certain use case in a couple of projects that the Email credentials\\\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/mail-plugin-with-db-driven-configuration\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/vivek\\\/#author\"},\"datePublished\":\"2011-02-03T12:53:14+05:30\",\"dateModified\":\"2016-12-19T15:04:08+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog","description":"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their","canonical_url":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#article","name":"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog","headline":"Grails Mail Plugin with DB Driven configuration","author":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"publisher":{"@id":"https:\/\/2thenew.today\/blog\/#organization"},"datePublished":"2011-02-03T12:53:14+05:30","dateModified":"2016-12-19T15:04:08+05:30","inLanguage":"en-US","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#webpage"},"articleSection":"Grails, Grails, grails mail, grails plugin, grails plugin enhancement, mail plugin, plugins"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.today\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","name":"Grails"}},{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","position":2,"name":"Grails","item":"https:\/\/2thenew.today\/blog\/category\/grails\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#listItem","name":"Grails Mail Plugin with DB Driven configuration"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#listItem","position":3,"name":"Grails Mail Plugin with DB Driven configuration","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.today\/blog\/category\/grails\/#listItem","name":"Grails"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.today\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.today\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author","url":"https:\/\/2thenew.today\/blog\/author\/vivek\/","name":"Vivek Krishna","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/07dba643a97b00215bacf46343f18d6cb7ab45f777264e13c22deb54f2cc830b?s=96&d=mm&r=g","width":96,"height":96,"caption":"Vivek Krishna"}},{"@type":"WebPage","@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#webpage","url":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/","name":"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog","description":"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.today\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"creator":{"@id":"https:\/\/2thenew.today\/blog\/author\/vivek\/#author"},"datePublished":"2011-02-03T12:53:14+05:30","dateModified":"2016-12-19T15:04:08+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.today\/blog\/#website","url":"https:\/\/2thenew.today\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.today\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"article","og:title":"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog","og:description":"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their","og:url":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/","og:image":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","article:tag":{"0":"grails","2":"grails mail","3":"grails plugin","4":"grails plugin enhancement","5":"mail plugin","6":"plugins"},"article:published_time":"2011-02-03T07:23:14+00:00","article:modified_time":"2016-12-19T09:34:08+00:00","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Grails Mail Plugin with DB Driven configuration | TO THE NEW Blog","twitter:description":"We have been coming across a certain use case in a couple of projects that the Email credentials\/settings used for sending email should be different based on the from address. This is because the applications act as software services that are used by different organizations, which operate in the same business. And each needed their","twitter:image":"https:\/\/2thenew.today\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"2719","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"","og_description":"","og_object_type":"article","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":"","og_article_tags":"","twitter_use_og":false,"twitter_card":"summary","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2021-04-30 08:15:01","updated":"2024-02-29 10:59:25","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.today\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.today\/blog\/category\/grails\/\" title=\"Grails\">Grails<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tGrails Mail Plugin with DB Driven configuration\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.today\/blog"},{"label":"Grails","link":"https:\/\/2thenew.today\/blog\/category\/grails\/"},{"label":"Grails Mail Plugin with DB Driven configuration","link":"https:\/\/2thenew.today\/blog\/mail-plugin-with-db-driven-configuration\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts\/2719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/comments?post=2719"}],"version-history":[{"count":0,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/posts\/2719\/revisions"}],"wp:attachment":[{"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/media?parent=2719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/categories?post=2719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.today\/blog\/wp-json\/wp\/v2\/tags?post=2719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}