Skip to main content
Glama
aegntic

Obsidian Elite RAG MCP Server

email-service.ts5.72 kB
import * as nodemailer from "nodemailer"; import { ListmonkService } from "./listmonk-service.js"; export class EmailService { private transporter: any; private apiKey: string; private mockMode: boolean; private listmonk: ListmonkService; constructor(apiKey?: string) { this.apiKey = apiKey || ""; this.mockMode = process.env.MOCK_EMAIL_SERVICE === "true"; this.listmonk = new ListmonkService(); if (!this.mockMode && this.apiKey) { // Configure email service (example with SendGrid/SMTP) this.transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST || "smtp.sendgrid.net", port: 587, secure: false, auth: { user: process.env.SMTP_USER || "apikey", pass: this.apiKey } }); } } async addToMailingList(data: { email: string; name: string; lists: string[]; tier?: string; api_key?: string; organization?: string; }): Promise<void> { if (this.mockMode) { console.log(`📧 MOCK: Adding ${data.email} to mailing lists: ${data.lists.join(", ")}`); return; } try { // Add subscriber to Listmonk await this.listmonk.addSubscriber({ email: data.email, name: data.name, status: 'enabled', attribs: { tier: data.tier || 'free', api_key: data.api_key, organization: data.organization, source: 'aegntic-auth' } }); console.log(`✅ Added ${data.email} to Listmonk mailing lists`); } catch (error) { console.error(`Failed to add to Listmonk: ${error.message}`); // Fallback to logging console.log(`Adding ${data.email} to mailing lists: ${data.lists.join(", ")}`); } } async sendWelcomeEmail(data: { email: string; name: string; tier: string; }): Promise<void> { if (this.mockMode) { console.log("📧 MOCK EMAIL: Welcome Email"); console.log(`To: ${data.email}`); console.log(`Name: ${data.name}`); console.log(`Tier: ${data.tier}`); console.log("Subject: Welcome to aegntic MCP Services"); return; } const mailOptions = { from: '"aegntic.foundation" <research@aegntic.ai>', to: data.email, subject: "Welcome to aegntic MCP Services", html: ` <div style="font-family: monospace; padding: 20px;"> <pre> ∀t ∃τ: (t, τ)↺ ⨁⊢⊣⟲ ☯⟹∞⟸⧖ ⨀⧴(g·τ·ξ·η)⧵ ⊩_⊥∇_⨂ ⩤⫛⪝⪜⫚⩥ </pre> <h2>Welcome ${data.name}!</h2> <p>Thank you for registering with aegntic MCP Services.</p> <h3>Your Account Details:</h3> <ul> <li>Email: ${data.email}</li> <li>Tier: ${data.tier}</li> <li>Status: Active</li> </ul> <h3>What's Next?</h3> <ul> <li>Install MCP servers: <code>npm install -g @aegntic/comfyui-mcp</code></li> <li>Configure Claude Desktop with your API key</li> <li>Explore our documentation at <a href="https://github.com/aegntic/aegntic-MCP">GitHub</a></li> </ul> <h3>Your Tier Benefits (${data.tier}):</h3> ${this.getTierBenefits(data.tier)} <p>If you have any questions, reach out to research@aegntic.ai</p> <pre style="margin-top: 40px;"> Σ_ℏω(t², τ²)⧞ ⩞⧉⦷⧊⩟ ⦵⦳⦴⦶ <research@aegntic.ai> </pre> </div> ` }; await this.transporter.sendMail(mailOptions); } async sendSubscriptionConfirmation(data: { email: string; tier: string; subscription_id: string; }): Promise<void> { const mailOptions = { from: '"aegntic.foundation" <research@aegntic.ai>', to: data.email, subject: `Subscription Confirmed - ${data.tier} Tier`, html: ` <div style="font-family: monospace; padding: 20px;"> <h2>Subscription Confirmed!</h2> <p>Your ${data.tier} subscription is now active.</p> <h3>Subscription Details:</h3> <ul> <li>Subscription ID: ${data.subscription_id}</li> <li>Tier: ${data.tier}</li> <li>Status: Active</li> <li>Billing: Monthly</li> </ul> <h3>Enhanced Benefits:</h3> ${this.getTierBenefits(data.tier)} <p>Manage your subscription at: https://aegntic.ai/account</p> </div> ` }; await this.transporter.sendMail(mailOptions); } private getTierBenefits(tier: string): string { const benefits = { free: ` <ul> <li>100 image generations/month</li> <li>10 video generations/month</li> <li>1,000 API calls/month</li> <li>Community support</li> <li>Basic models access</li> </ul> `, pro: ` <ul> <li>5,000 image generations/month</li> <li>500 video generations/month</li> <li>50,000 API calls/month</li> <li>Priority support</li> <li>All models access</li> <li>Custom workflows</li> <li>API priority queue</li> </ul> `, enterprise: ` <ul> <li>Unlimited generations</li> <li>Unlimited API calls</li> <li>Dedicated support</li> <li>Custom model training</li> <li>SLA guarantee</li> <li>White-label options</li> <li>On-premise deployment</li> </ul> ` }; return benefits[tier] || benefits.free; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aegntic/aegntic-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server