Skip to content

Add MailChannels Email API 0.1.1 - #3619

Merged
crazywoola merged 1 commit into
langgenius:mainfrom
mailchannels:add-mailchannels-0.1.1
Nov 4, 2026
Merged

crazywoola merged 1 commit into
langgenius:mainfrom
mailchannels:add-mailchannels-0.1.1

Conversation

@deniz-mailchannels

Copy link
Copy Markdown
Contributor

Plugin Submission

Plugin information

Submission type

  • New plugin
  • Version update

What changed

Adds a transactional email tool for Dify workflows and agents, built on the MailChannels Email API. The provider configuration fixes the API key, sender, an exact allowlist of recipients and dry-run/send mode. The model supplies only the recipient, subject, plain text and optional HTML. Saving credentials always validates with a dry-run, even when send mode is selected. API acceptance is reported separately from delivery.

Risk level

  • Low risk
  • Medium risk
  • High risk

Required checks

  • I have read and followed the Marketplace submission requirements.
  • I have read and comply with the Plugin Development Guidelines.
  • I tested this plugin on Dify Community Edition and Dify Cloud, or documented any limitation below.
  • The package contains only files needed at runtime.
  • The package does not contain secrets, local credentials, .env files, .git directories, virtual environments, caches, logs, or IDE files.
  • The package does not contain executables or bundled binaries, or I explained why they are required below.
  • The plugin README includes setup steps, usage instructions, required APIs or credentials, connection requirements, and the source repository link.
  • The plugin includes PRIVACY.md or a hosted privacy policy, and manifest.yaml references it.
  • All user-facing text is primarily in English, with any localized README files following the i18n guidance.

Security and privacy notes

Medium risk: the tool performs an external write (sending email) and transmits recipient and message content to MailChannels. The destination is fixed to HTTPS api.mailchannels.net with normal certificate verification, no redirects, a 30 second connect/read-inactivity timeout and no automatic retry. The model cannot change the credentials, sender, allowed recipients or send mode, and the recipient allowlist holds at most 100 exact addresses. The tool exposes no arbitrary URL fetching, attachments, command or code execution, SQL, filesystem access or browser automation. It is meant for general transactional content, not for specialized sensitive data.

Dify stores the provider credentials and may retain workflow inputs and outputs under its own policies. The tool does not return raw provider errors, headers or rendered MIME. Saving credentials sends the configured sender and a synthetic message to the provider's dry-run endpoint.

There is no durable idempotency, so an agent repetition or workflow retry can send twice; reconcile unknown outcomes before retrying. Uninstalling the plugin does not guarantee credential deletion: delete the tool credentials in provider settings before uninstalling, and revoke the API key upstream when appropriate.

Local validation

Built from source commit cceb7eb655f748d6a1796b80e1ebfbb40fc89b02 with dify plugin package 0.6.10. Archive SHA-256: 1cfdd3d7ad5c0f5017d242eaa1bb20fddf887f0e1b101290a5a7f2b47c8ec68a (12 files).

  • python -m pytest -q: 44 passed.
  • Packaged serverless runtime in Docker with --network none: 7 invocation and credential scenarios passed.
  • dify-marketplace-toolkit validator/validate-difypkg.py with this PR body: 0 blocking findings.
  • Dify Community Edition 1.17.1 (daemon 0.6.10) with a local HTTPS mock of the API: install, provider registration, dry-run credential save, masked credential retrieval, workflow send, forbidden recipient and invalid key rejection, 307/503 single-request outcomes, concurrent node runs, editing and test-running an existing workflow in the browser, cross-workspace denial, credential deletion and uninstall.

Limitations: not tested on Dify Cloud or with a model-driven Agent; minimum_dify_version 1.17.1 is the oldest version tested.

Reviewer notes

The financial-activity heuristic matches the README sentence saying MailChannels bills for its service separately. The plugin does not process payments or transfer assets or tokens.

@github-actions github-actions Bot added the risk: medium Medium-risk Marketplace submission label Nov 3, 2026

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre Check Plugin and PR Risk Label passed for this revision. Inspected the package, documentation and relevant source: this is a non-draft plugin submission with no Web3 functionality identified. This is an eligibility review, not a comprehensive security audit.

@crazywoola
crazywoola merged commit ecb01ee into langgenius:main Nov 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium Medium-risk Marketplace submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants