【问题标题】:mailgun/parse-server(heroku) not working邮件枪/解析服务器(heroku)不工作
【发布时间】:2017-09-06 07:01:17
【问题描述】:

有两个 iOS 应用程序(让我们将它们命名为 appA 和 appB)都使用托管在 herokumailgun 上的 parse-server,我遇到了下面描述的问题。

首先让我说这两个应用程序是不相关的,除了它们都有用户帐户并且邮件mailgun 用于在用户创建帐户时发送确认邮件。

appA 工作正常,这意味着在创建新帐户时会发送确认邮件。 但是 appB 不再工作,这意味着创建新帐户时不会发送确认邮件。

我试图找出两者之间的区别,使一种工作而不是另一种工作。 我还阅读或听过一些关于该主题的教程,以提醒我我是如何进行这种设置的(几个月前)。但我无法掌握任何相关差异并解决我的问题,即让 appB 恢复工作状态。

非常感谢在该领域比我更有经验的人提供的任何提示(关于做什么或寻找什么)。

提前致谢!

作为参考,这里是不工作的应用程序的解析服务器 index.js:

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');
var S3Adapter = require('parse-server').S3Adapter;

var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;

if (!databaseUri) {
  console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://heroku_database',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || '__appId__',
  masterKey: process.env.MASTER_KEY || '__masterKey__',
  filesAdapter: new S3Adapter(
    "__AAKKIII__",
    "pP7Lm16Tt/nTrKq3242Hv",
    "myapp",
    {directAccess: true}
  ),
  serverURL: process.env.SERVER_URL || 'https://myapp.herokuapp.com/parse',
  liveQuery: {
    classNames: ["User", "myappUnit", "myappFieldOne", "myappFieldTwo"]
  },
  emailAdapter: {
    module: 'parse-server-simple-mailgun-adapter',
    options: {
      fromAddress: 'parse@example.com',
      domain: 'mydomain.net',
      apiKey: 'key-fjdfijofd',
    }
  }
});

var app = express();

app.use('/public', express.static(path.join(__dirname, '/public')));

var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

app.get('/', function(req, res) {
  res.status(200).send('I dream of being a website.  Please star the parse-server repo on GitHub!');
});

app.get('/test', function(req, res) {
  res.sendFile(path.join(__dirname, '/public/test.html'));
});

var port = process.env.PORT || 1337;
var httpServer = require('http').createServer(app);
httpServer.listen(port, function() {
    console.log('parse-server-example running on port ' + port + '.');
});

ParseServer.createLiveQueryServer(httpServer);

【问题讨论】:

  • 发送电子邮件时,heroku logs -tail 中的两个应用程序之间有什么区别吗?
  • 是的,我确实看到了很大的不同。对于正在运行的应用程序,当创建新帐户时,日志中大约有 10 行跟踪,当单击电子邮件验证链接时,还有几行。在非工作应用程序的情况下,日志中根本没有任何内容。我可以验证该帐户是否已在数据库中创建,但不会出现验证邮件。有没有我可以检查的东西的清单,看看是否一切都设置好了?
  • 我们能看到解析服务器index.js吗?这两个应用程序是否共享同一个解析服务器?您还可以将环境变量与heroku run printenv 进行比较
  • 没有这两个应用程序有自己的解析服务器。
  • 两种情况下运行“heroku run printenv”的结果似乎非常相似。

标签: email heroku parse-server mailgun heroku-api


【解决方案1】:

在网上搜索、尝试不同的东西并仔细查看后,我最终找到了丢失的东西。 我把它放在这里以防将来可能对某人有所帮助。

我的帖子中解析服务器 index.js 中缺少的行是:

  • 验证用户电子邮件:真,
  • appName: '解析应用',

上面的行需要包含在里面:

var api = new ParseServer({
......
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 2012-01-28
    • 2018-05-07
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    相关资源
    最近更新 更多