Add Grails 8 email guide (v8 prose, snippets, guides.yml)#524
Add Grails 8 email guide (v8 prose, snippets, guides.yml)#524sanjana2505006 wants to merge 5 commits into
Conversation
jamesfredley
left a comment
There was a problem hiding this comment.
Thanks @sanjana2505006! Reviewed the v8 email guide prose plus conf/guides.yml. The good news first: all 12 TOC keys map to chapter files (no orphans), and every include:: snippet path resolves to a vendored snippet. A few things to address before merge. The publication date is fine, please ignore that one.
Inline comments below cover: the guides.yml TOC syntax and author name, the SMTP config filename mismatch, and the injected == Verify CI heading.
One cross-cutting item that is not line-specific:
-
Typography: please remove em/en dashes (the
—character) throughout. They appear in the subtitle (guides.yml),introduction.adoc(line 1),gettingStarted.adoc(line 17), andsummary.adoc(line 7). Replace them with commas, colons, parentheses, or regular hyphens per project style. -
SMTP config filename (cross-PR): the biggest item is that the mail-config filename must be identical in three places: the sample app (companion PR grails-guides/grails-email#1 currently names it
application-development.yml), the vendored snippet here (application-email.yml), and the prose/caption (application.yml). Please reconcile to a single name across both PRs. Details in the inline comment onsmtpMail.adoc.
|
@jamesfredley I've updated the code |
|
Latest-head re-review: the original feedback is addressed, and I resolved those prior threads. A new blocking cross-PR drift remains: the vendored snippets no longer match the companion sample-app head. In particular:
Please fix the remaining companion-PR blockers first, then re-vendor these files from that corrected head and update the AWS filename/include to |
|
@jamesfredley, addressed the inline notes. |
| } | ||
| this.sesClient = SesClient.builder().region(Region.of(awsRegion)).build() | ||
|
|
||
| this.sourceEmail = co.getProperty('aws.ses.source', String, '') |
There was a problem hiding this comment.
This snippet is still the pre-b07505d implementation: it warns and continues when aws.ses.source is missing, and bodyOfEmail still drops the text alternative whenever HTML is present. Please re-vendor the final companion implementation after the sample PR is green; it must fail fast on missing source and preserve both text and HTML.
| respond cmd.errors, view: '/application/errors', status: UNPROCESSABLE_ENTITY | ||
| return | ||
| } | ||
| log.info '{}', cmd.toString() |
There was a problem hiding this comment.
The guide still publishes cmd.toString() at INFO, which includes recipient, CC/BCC, subject, and both message bodies. Please re-vendor the final privacy-safe controller from the companion app after its logging fix is complete.
|
|
||
| then: | ||
| ex != null | ||
| ex.statusCode == HttpStatus.UNPROCESSABLE_ENTITY |
There was a problem hiding this comment.
This vendored test remains behind the companion head: it still compares against UNPROCESSABLE_ENTITY and only checks that path/links are truthy. Please re-vendor the final green test after the sample app correctly returns and asserts exact /mail/send path and self-link values.
|
|
||
| [source,bash] | ||
| ---- | ||
| cd complete |
There was a problem hiding this comment.
The guide previously leaves the reader in grails-email/initial, so this command targets a nonexistent initial/complete directory. Please use cd ../complete, consistent with the corrected Getting Started chapter.
Adds the Grails 8 email guide under
guides/grails-email/v8/(AsciiDoc chapters + vendored snippets) and registers the v8 version inconf/guides.ymlwith TOC.Companion to grails-guides/grails-email#1