{"id":24167323,"url":"https://github.com/ashwinkhode/postmark-action","last_synced_at":"2026-04-25T21:31:49.326Z","repository":{"id":269302564,"uuid":"906668362","full_name":"ashwinkhode/postmark-action","owner":"ashwinkhode","description":"A GitHub Action to send emails using the Postmark API with support for HTML templates.","archived":false,"fork":false,"pushed_at":"2025-03-10T06:13:02.000Z","size":1376,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T01:45:43.046Z","etag":null,"topics":["actions","email","github-actions","mail","postmark","postmark-api","postmark-app","postmark-integrations","postmarkapp","templates"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashwinkhode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-21T15:00:27.000Z","updated_at":"2024-12-24T07:32:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"9563b9e4-391e-4f09-9569-2de07cbc99f3","html_url":"https://github.com/ashwinkhode/postmark-action","commit_stats":null,"previous_names":["ashwinkhode/postmark-action"],"tags_count":2,"template":false,"template_full_name":"actions/typescript-action","purl":"pkg:github/ashwinkhode/postmark-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwinkhode%2Fpostmark-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwinkhode%2Fpostmark-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwinkhode%2Fpostmark-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwinkhode%2Fpostmark-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashwinkhode","download_url":"https://codeload.github.com/ashwinkhode/postmark-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwinkhode%2Fpostmark-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","email","github-actions","mail","postmark","postmark-api","postmark-app","postmark-integrations","postmarkapp","templates"],"created_at":"2025-01-12T21:13:06.382Z","updated_at":"2026-04-25T21:31:49.309Z","avatar_url":"https://github.com/ashwinkhode.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Postmark Action\n\nA GitHub Action to send emails using the Postmark API with support for HTML templates.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Overview\n\nThis action allows you to send emails through Postmark's API directly from your GitHub Actions workflow. It supports both plain text and HTML emails, with the ability to use template files and dynamic template variables.\n\n## Features\n\n- Send plain text or HTML emails\n- Support for HTML template files\n- Dynamic template variable substitution\n- Simple integration with GitHub Actions workflows\n\n## Requirements\n\n- A Postmark account and API token (sign up at [postmarkapp.com](https://postmarkapp.com))\n- Node.js 22 (handled automatically by GitHub Actions)\n- Sender email address must be verified with Postmark\n\n## Usage\n\n### Basic Example (Plain Text)\n\n```yaml\nsteps:\n- name: Send Email\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    postmark-token: ${{ secrets.POSTMARK_TOKEN }}\n    to: 'recipient@example.com'\n    from: 'sender@yourdomain.com'\n    subject: 'Test Email'\n    body: 'This is a test email sent from GitHub Actions!'\n    is-html: 'false'\n```\n\n### HTML Email Example\n\n```yaml\nsteps:\n- name: Send HTML Email\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    postmark-token: ${{ secrets.POSTMARK_TOKEN }}\n    to: 'recipient@example.com'\n    from: 'sender@yourdomain.com'\n    subject: 'HTML Test Email'\n    body: '\u003ch1\u003eHello!\u003c/h1\u003e\u003cp\u003eThis is an HTML email.\u003c/p\u003e'\n    is-html: 'true'\n```\n\n### Using Template Example\n\n```yaml\nsteps:\n- name: Send Templated Email\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    postmark-token: ${{ secrets.POSTMARK_TOKEN }}\n    to: 'recipient@example.com'\n    from: 'sender@yourdomain.com'\n    subject: 'Templated Email'\n    template-path: './email-templates/welcome.html'\n    template-data: '{\"name\": \"John\", \"company\": \"Acme Inc\"}'\n    is-html: 'true'\n```\n\n## Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `postmark-token` | Your Postmark API token | Yes | - |\n| `to` | Recipient email address | Yes | - |\n| `from` | Sender email address | Yes | - |\n| `subject` | Email subject | Yes | - |\n| `body` | Email body content | No* | - |\n| `template-path` | Path to the HTML template file | No | - |\n| `template-data` | JSON string containing template variables | No | - |\n| `is-html` | Whether the body content is HTML | Yes | - |\n\n\\* `body` is required unless using a template\n\n[Rest of the README remains the same...]\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `status` | Status of the email sending operation |\n\n## Template Variables\n\nWhen using a template file, you can pass variables using the `template-data` input. The variables can come from multiple sources:\n\n### 1. Static Values\n\n```yaml\ntemplate-data: '{\"username\": \"John\", \"resetLink\": \"https://example.com/reset\"}'\n```\n\n### 2. GitHub Context Variables\n\nYou can use any GitHub Actions context variables in your template data:\n\n```yaml\nsteps:\n- name: Send Workflow Notification\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    # ... other inputs ...\n    template-data: |\n      {\n        \"repository\": \"${{ github.repository }}\",\n        \"workflow\": \"${{ github.workflow }}\",\n        \"actor\": \"${{ github.actor }}\",\n        \"commit\": \"${{ github.sha }}\",\n        \"ref\": \"${{ github.ref }}\",\n        \"event\": \"${{ github.event_name }}\"\n      }\n```\n\n### 3. Environment Variables\n\n```yaml\nenv:\n  DEPLOY_ENV: production\n  VERSION: 1.0.0\n\nsteps:\n- name: Send Deploy Notification\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    # ... other inputs ...\n    template-data: |\n      {\n        \"environment\": \"${{ env.DEPLOY_ENV }}\",\n        \"version\": \"${{ env.VERSION }}\"\n      }\n```\n\n### 4. Previous Step Outputs\n\n```yaml\nsteps:\n- name: Get Test Results\n  id: tests\n  run: |\n    echo \"::set-output name=passed::42\"\n    echo \"::set-output name=failed::3\"\n\n- name: Send Test Report\n  uses: ashwinkhode/postmark-action@v1\n  with:\n    # ... other inputs ...\n    template-data: |\n      {\n        \"testsPassed\": \"${{ steps.tests.outputs.passed }}\",\n        \"testsFailed\": \"${{ steps.tests.outputs.failed }}\"\n      }\n```\n\n### Using Variables in Templates\n\nIn your template file, use double curly braces to reference variables:\n\n```html\n\u003ch1\u003eWorkflow Report\u003c/h1\u003e\n\u003cp\u003eRepository: {{repository}}\u003c/p\u003e\n\u003cp\u003eTriggered by: {{actor}}\u003c/p\u003e\n\u003cp\u003eEnvironment: {{environment}}\u003c/p\u003e\n\u003cp\u003eTest Results:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003ePassed: {{testsPassed}}\u003c/li\u003e\n  \u003cli\u003eFailed: {{testsFailed}}\u003c/li\u003e\n\u003c/ul\u003e\n```\n\n### Dynamic Subject Lines\n\nYou can also use GitHub context variables in the subject line:\n\n```yaml\nsubject: 'Build ${{ github.run_number }} - ${{ job.status }} on ${{ github.repository }}'\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## Author\n\nAshwin Khode ([@ashwin4real](https://twitter.com/ashwin4real))\n\n## Support\n\n- For issues with this Action: [Open an issue](https://github.com/ashwinkhode/postmark-action/issues)\n- For API questions: [Postmark's API Documentation](https://postmarkapp.com/developer/api/overview)\n\n## Credits\n\nThis project uses:\n- [Postmark API](https://postmarkapp.com/developer)\n- [GitHub Actions](https://docs.github.com/en/actions)\n- [Node.js](https://nodejs.org/)\n- [handlebars](https://handlebarsjs.com/)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Legal Notice\n\nThis GitHub Action is an independent, unofficial integration and is not affiliated with, endorsed by, or connected to Postmark® or Wildbit LLC. Postmark® is a registered trademark of Wildbit LLC.\n\nThis Action uses Postmark's public API. For official resources:\n- [Postmark Documentation](https://postmarkapp.com/developer)\n- [API Reference](https://postmarkapp.com/developer/api/overview)\n- [Terms of Service](https://postmarkapp.com/terms-of-service)\n\nThe MIT License applies only to the code in this repository and not to Postmark's services or API. Users must comply with [Postmark's Terms of Service](https://postmarkapp.com/terms-of-service) and [Sender Policy](https://postmarkapp.com/support/article/1047-how-to-request-sender-signature-approval).\n\n---\n\n*Note: This Action is maintained independently. For official Postmark integrations, visit [postmarkapp.com](https://postmarkapp.com).*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwinkhode%2Fpostmark-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashwinkhode%2Fpostmark-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwinkhode%2Fpostmark-action/lists"}