使用 Gmail SMTP 发送电子邮件 - Meteorjs

2024-04-29

您好,我正在尝试设置我的 Gmail 帐户来为我的 Meteor 应用程序发送电子邮件,到目前为止还不是很容易

服务器.js

Meteor.startup(function () {
  smtp = {
    username: 'xxxxx',   // eg: [email protected] /cdn-cgi/l/email-protection
    password: 'YYYYYYYY',   // eg: 3eeP1gtizk5eziohfervU
    server:   'smtp.gmail.com',  // eg: mail.gandi.net
    port: 465
  }

  process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port;
});

Email.send({
  from: "[email protected] /cdn-cgi/l/email-protection",
  to: "[email protected] /cdn-cgi/l/email-protection",
  subject: "Meteor Can Send Emails via Gmail",
  text: "Its pretty easy to send emails via gmail."
});

并且测试电子邮件永远不会发送以下错误代码,表明我尚未设置环境变量。

I20150715-18:14:02.641(0)? ====== BEGIN MAIL #0 ======
I20150715-18:14:02.642(0)? (Mail not sent; to enable sending, set the MAIL_URL environment variable.)
I20150715-18:14:02.643(0)? MIME-Version: 1.0
I20150715-18:14:02.643(0)? From: [email protected] /cdn-cgi/l/email-protection
I20150715-18:14:02.643(0)? To: [email protected] /cdn-cgi/l/email-protection
I20150715-18:14:02.643(0)? Subject: Meteor Can Send Emails via Gmail
I20150715-18:14:02.643(0)? Content-Type: text/plain; charset=utf-8
I20150715-18:14:02.643(0)? Content-Transfer-Encoding: quoted-printable
I20150715-18:14:02.644(0)? 
I20150715-18:14:02.644(0)? Its pretty easy to send emails via gmail.
I20150715-18:14:02.645(0)? ====== END MAIL #0 ======

这可能是因为我在 C9 上运行这个吗?

Thanks


糟糕的是cloud9不允许设置环境变量。也许你可以设置Meteor.settings对象而不是环境变量?

http://docs.meteor.com/#/full/meteor_settings http://docs.meteor.com/#/full/meteor_settings

本质上,当你使用--settings启动它时,你可以将JSON传递给meteor。这些仅在服务器端可用,除非包装在根的“公共”对象下。

{
  'public': {
     'some-setting': 'some-value'
  },
  'other-setting': 'other-value'
}

这是一种处理无环境变量的解决方法。由于核心电子邮件包始终查看 MAIL_URL 环境变量,因此您可能需要通过其他服务/提供商发送电子邮件。

Mandrill http://mandrill.com/(由 Mailchimp 提供)有相当大的免费套餐,可以让您发送交易电子邮件。您甚至可以在 mailchimp 中制作邮件模板、导出到 HTML、导入到 mandrill 并在 API 调用中传入合并变量。

更好的是,有一个用于写入 Mandrill API 的强大包。https://atmospherejs.com/wylio/mandrill https://atmospherejs.com/wylio/mandrill

希望有帮助!

Elliott

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Gmail SMTP 发送电子邮件 - Meteorjs 的相关文章

  • 如何更新 Meteor Collection/minimongo 中一个文档的数组中多个对象的属性?

    我的问题几乎与此重复question https stackoverflow com questions 36026517 how to update multiple array objects in mongodb 不同之处在于我在 M
  • 让 React 在表单输入字段下显示单独的错误消息

    我正在提交一个返回一系列错误的表单 但我无法弄清楚如何让每个单独的错误出现在正确的输入字段下 现在 所有错误都会打印在每个输入字段下 我在用着react bootstrap 任何帮助 将不胜感激 getValidationState var
  • Nginx 背后的多个 Meteor 站点

    这个问题与this https stackoverflow com questions 10936242 how can i correct the meteor base url in a nginx reverse proxy conf
  • Iron 路由器中的多个订阅

    我一直在开发一个使用评论功能的应用程序 这导致必须订阅发表评论的集合和评论集合本身 现在看起来像这样
  • 编写/转换 Meteor 同步函数

    这已经困扰我一段时间了 所以我想我应该对其进行快速的质量检查 如果有一个普通的nodeJS模块或其他东西 并且它在服务器端有一个异步功能 我如何使其同步 例如我如何转换nodejsfs stat异步函数转为同步函数 例如我有 服务器端js
  • 如何获取模板的所有实例?

    我知道我可以通过这样做获得一个模板实例Blaze getView node 但我怎样才能找到所有实例Template foo 如果我们借行走DOM http www javascriptcookbook com article Traver
  • Meteor 中的触摸事件

    我开始使用 Meteor 做的第一件事是开始为手机 平板电脑编写基于触摸的 Web 应用程序 以下是重现问题的方法 第一步 创建一个空白项目 meteor create touch example cd touch example mete
  • Meteor 抛出 throwIfSelectorIsNotId 异常

    运行某些代码时 Meteor 会抛出 throwIfSelectorIsNotId 异常 我有两个客户端运行相同的代码 当第二个客户端运行相同的代码时会引发异常 无法弄清楚这个异常的含义以及抛出的原因 希望有人能够解释一下 对于客户端上的某
  • 带有 mrt 的流星 - 铁:路由器:没有这样的包

    我在学meteor 0 8 3并尝试使用一些基本的路由设置铁路由器 https github com EventedMind iron router My smart json包含 packages iron router git http
  • Mongo按动态字段排序

    所以我传入了一个动态变量 它是我想要排序的字段的名称 假设下面的 sortVariable 可能等于 price createdAt name 等 这不起作用 我该怎么做 function findStuff sortVariable va
  • 如何强制 Meteor 重新加载订阅?

    在我的应用程序中 sections是一个链接到的集合courses通过一个名为course sectionIds 初始加载工作正常 但在管理面板中添加部分时遇到非反应式连接问题 这是路线 route adminCourse path adm
  • 如何在 Ubuntu VirtualBox 中运行 Meteor 应用程序并使用 Windows 主机上的编辑器进行编辑?

    我希望在运行 Ubuntu 的 virtualbox 来宾中运行一个用于开发目的的流星服务器 该项目将位于主机上的一个文件夹内 该文件夹将共享给来宾 该文件夹本身位于 Dropbox 文件夹内 这样我可以在多个虚拟机和工作站之间共享开发 但
  • 了解新的 mongo id 并将其与 Iron-router 一起使用

    我有一个简单的帖子路线来寻找帖子 id 问题是pathFor助手创建这样的路径 ObjectID 52e16453431fc2fba4b6d6a8 我猜 mongoDB 插入已更改 现在 id对象在其内部包含另一个对象 称为 str 这是我
  • 为什么我的带有帐户包的 Meteor 应用程序没有发送验证电子邮件?

    我正在制作一个流星应用程序 并且添加了 mrt 帐户密码包以及 mrt 帐户 ui bootstrap dropdown 我添加了登录按钮 以便用户可以创建一个帐户 效果很好 我正在使用所有默认值 在服务器上我有代码 Accounts co
  • 如何调试性能问题/优化您的流星应用程序

    我刚刚将 Meteor 应用程序部署到 Digital Ocean 上的生产服务器上 我注意到 对于大约 7500 个文档 完全获取对象 有选择地仅获取 3 个字段 并填充自动完成数据大约需要 3 5 秒 我相信对于如此数量的数据来说 它应
  • 如何设计流星智能包以透明地将应用程序分离到不同的实例中?

    这是对于那些非常熟悉 Meteor 架构的人来说的问题 我正在尝试设计一个智能包 可以透明地运行 Meteor 应用程序的多个 副本 也就是说 给定一个现有的 Meteor 应用程序和几个预定义的用户组 该包可以半自动地 隔离 该应用程序
  • 在 Meteor 中重绘模板期间加载消息

    我构建了我的第一个 Meteor 应用程序 我喜欢它 不过 现在它已经有了真实的生产数据 所以速度有点慢 我收到报告称 当我点击此按钮时没有任何反应 有什么方法可以在模板重绘期间显示加载消息 以便用户知道正在发生什么事情 为了进一步说明 请
  • MeteorJS:用户集合如何公开新字段

    我在用户集合中添加了新字段 但是当我在客户端 Meteor user cart 中访问它时 cart 是我的新字段 其未定义 如何公开新字段 购物车 以便可以在客户端中访问 最简单的方法是添加一个null发布者将自动发送数据 无需订阅 请务
  • 使用 Meteor 中的 D3 访问 csv 文件

    我已经使用 D3 成功渲染了一个 HTML 表格 显示了 csv 文件中的数据 但是当我将相同的代码移入 Meteor 项目时 我遇到了问题 传递到 d3 csv 回调中的数据对象一次拾取 HTML 文件 1 行 而不是 csv 数据 仅当
  • 无法在 Windows 8.1 Pro 上为 Meteor 添加 Iron 路由器包

    我在Windows上安装了meteorhttp win meteor com http win meteor com 我试图通过下载以下存储库在 Windows 8 1 上为 Meteor 安装 Iron 路由器包 git clone ht

随机推荐

  • Java中printf左对齐

    当我运行该程序时 阶乘值右对齐 有没有办法让它左对齐 同时保持中间 50 个空格 public class Exercise 5 13 public static void main String args int numbers 1 2
  • 应该如何在 Ant Design Upload 组件中设置 customRequest 以使用 XMLHttpRequest?

    我的组件一团糟 现在我传递了一个函数 我已经尝试了一百万件事但无法让它工作 export default class DatafileUpload extends Component initialState fileUploading f
  • Datalogic得利捷 Falcon X3 - 条码扫描器

    我刚刚拿到 Datalogic Falcon X3 条码设备 有人问我是否可以制作一个 javascript 应用程序来读取条码并通过 sql 将其发送到数据库 由于我不太喜欢 C C 和 Visual Studio 2008 中的 Win
  • 如何始终显示滚动条?

    如何在 UWP 应用中始终显示滚动条 滚动条总是在几秒钟后消失 我尝试过设置ScrollViewer VerticalScrollBarVisibility Visible 但滚动条仍然消失 我已经看过了Xaml UI 基础示例 https
  • CURL 静态链接未解析的外部符号

    我在 x64 Native Tools 命令提示符 Visual Studio 中使用此命令从源代码构建了 CURL 静态库 nmake f Makefile vc 模式 静态机器 AMD64 我将 lib 文件夹添加到链接器库文件夹 将
  • 从数据框 R 列表中获取列

    我是一个 R 初学者 我被这个问题困扰了 我有一个数据框 并通过使用 split 函数创建了一个数据框列表 例如 dfList lt split mtcars mtcars cyl 现在我想检索特定数据帧的列 例如数据框 1 的第 2 列
  • Java 中的递归回溯解决填字游戏

    我需要在给定初始网格和单词的情况下解决填字游戏 单词可以多次使用或根本不使用 初始网格如下所示 这是一个单词列表示例 pain nice pal id 任务是填充占位符 水平或垂直长度 gt 1 像那样 p pain pal id i c
  • 提交搜索表单后无法使用 Flask 应用程序从 url 检索变量

    我想在用户提交搜索表单后呈现一个新视图 我的制作方式与处理其他视图的方式相同 但不幸的是这次没有发生任何事情 我无法从应用程序路由中检索内容 所以这个问题不是重复的this https stackoverflow com questions
  • 在 F# 中实现返回 Task 的 C# 方法

    我正在 F 中创建一个类型 该类型继承自 C 类 该类公开返回的方法Task
  • css - 溢出允许水平滚动

    我正在尝试这一页 http www4 wittenberg edu admission dev undergrad 我正在尝试让溢出允许水平滚动 我尝试将主体设置为隐藏 并将 真实主体 类设置为自动 这似乎不起作用 你需要用一个包裹你的长内
  • 如何在 UIBarButtonItem 上触发高亮效果

    当您点击UIBarButtonItem in a UIToolbar 有白光效果 是否有可能触发一个事件来显示这种效果 我不想按按钮 只应显示效果 我想向用户展示该按钮后面有新内容 感谢您的帮助 这是 highlight png 我不是在开
  • Golang中的匿名接口实现

    在Go中 有没有办法匿名满足接口 似乎没有 但这是我最好的尝试 In the 操场 http play golang org p 4i 8o087dg package main import fmt type Thing interface
  • 在 strings.xml 中存储十六进制颜色值

    我正在尝试存储hex colorstrings xml 中我的文本的值 因此所有布局文件都将引用该值 以便能够轻松快速更改项目的所有布局文本 但是我在引用它时遇到了麻烦 Using android textColor FFFFFF 在我的
  • 无法签出以连字符 (-) 开头的 git 分支

    我克隆了一个 git 存储库 该存储库有一个远程分支 例如 feature abc 当我打字时git checkout feature abc I get error unknown switch e 知道如何结帐这个分支吗 尝试使用以下语
  • MVC5 输入占位符不起作用

    我的代码是这样的 Html EditorFor model gt model CreatedUser new htmlAttributes new class form control placeholder Your Placeholde
  • 为什么通用存储库被视为反模式? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我看来 许多专门的存储库类都具有相似的特征 并且让这些类实现一个概述这些特征的接口 创建一个通用存储库是有意义的 为了说明我的观点 假设我们有
  • 在 Perl 中使用 POSIX ceil() 出现意外结果

    我一生都无法弄清楚为什么以下会产生这样的结果 use POSIX my g 6 65 my t g 4 my r t g my n r g my c ceil n print c n n 我知道印记太棒了 抱歉 我已经为我的应用程序解决了这
  • 如何在Android中打开设备管理员设置?

    我想去Security gt Device administrators然而 在我的设置中 我只能弄清楚如何打开Security gt Intent dialogIntent new Intent android provider Sett
  • Eclipse 的 Visual Studio Ctrl+Tab 和 Ctrl+Shift+Tab 等效项

    In Visual Studio I always use Ctrl Tab and Ctrl Shift Tab to navigate between documents I see that Eclipse has Ctrl F6 t
  • 使用 Gmail SMTP 发送电子邮件 - Meteorjs

    您好 我正在尝试设置我的 Gmail 帐户来为我的 Meteor 应用程序发送电子邮件 到目前为止还不是很容易 服务器 js Meteor startup function smtp username xxxxx eg email prot