Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript meteorjs:我使用Email.send()正确吗? var SITE_URL=Meteor.absoluteUrl(); 函数sendEmailNotification(类型、sourceUser、收件人、notificationObject){ var emailFrom=server@example.com'; var emailSubject='MyApp:'; var-emailBody=''; $.each(收件人,函数(索引,收件人){ recipients[index]=recipient+'@example.com'; }); 开关(类型){ 案例“分配的项目”: emailSubject+=notificationObject.item\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已为您分配了一个操作项'; emailBody+=“” 打破 案例“列表共享”: emailSubject+=notificationObject.list\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已与您共享了一个列表:'; emailBody+=''; emailBody+=“” 打破 } if(Meteor.isServer){ //此功能仅在服务器上运行 Email.send({ 发件人:emailFrom, 密件抄送:收件人, 主题:电邮主题,, html:emailBody }); } }_Javascript_Email_Meteor - Fatal编程技术网

Javascript meteorjs:我使用Email.send()正确吗? var SITE_URL=Meteor.absoluteUrl(); 函数sendEmailNotification(类型、sourceUser、收件人、notificationObject){ var emailFrom=server@example.com'; var emailSubject='MyApp:'; var-emailBody=''; $.each(收件人,函数(索引,收件人){ recipients[index]=recipient+'@example.com'; }); 开关(类型){ 案例“分配的项目”: emailSubject+=notificationObject.item\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已为您分配了一个操作项'; emailBody+=“” 打破 案例“列表共享”: emailSubject+=notificationObject.list\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已与您共享了一个列表:'; emailBody+=''; emailBody+=“” 打破 } if(Meteor.isServer){ //此功能仅在服务器上运行 Email.send({ 发件人:emailFrom, 密件抄送:收件人, 主题:电邮主题,, html:emailBody }); } }

Javascript meteorjs:我使用Email.send()正确吗? var SITE_URL=Meteor.absoluteUrl(); 函数sendEmailNotification(类型、sourceUser、收件人、notificationObject){ var emailFrom=server@example.com'; var emailSubject='MyApp:'; var-emailBody=''; $.each(收件人,函数(索引,收件人){ recipients[index]=recipient+'@example.com'; }); 开关(类型){ 案例“分配的项目”: emailSubject+=notificationObject.item\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已为您分配了一个操作项'; emailBody+=“” 打破 案例“列表共享”: emailSubject+=notificationObject.list\u标题; emailBody+=''; emailBody+=sourceUser; emailBody+='已与您共享了一个列表:'; emailBody+=''; emailBody+=“” 打破 } if(Meteor.isServer){ //此功能仅在服务器上运行 Email.send({ 发件人:emailFrom, 密件抄送:收件人, 主题:电邮主题,, html:emailBody }); } },javascript,email,meteor,Javascript,Email,Meteor,上述函数位于根目录下的JS文件中(因此其代码对客户端和服务器都可用)。但当我在客户端代码中调用它时,什么都没有发生。我的应用程序中包含了电子邮件软件包。在本地计算机(Windows 7)上,我没有设置MAIL\u URL变量。因此,调用Email.send()函数理想情况下应该在命令提示符中生成输出,但实际上不会输出任何内容 在我们的生产服务器上,SMTP已正确设置,其他应用程序可以发送具有相同设置的电子邮件。我已经在那里正确配置了MAIL\u URL环境变量,但仍然没有发送电子邮件 谁能告诉我

上述函数位于根目录下的JS文件中(因此其代码对客户端和服务器都可用)。但当我在客户端代码中调用它时,什么都没有发生。我的应用程序中包含了
电子邮件
软件包。在本地计算机(Windows 7)上,我没有设置
MAIL\u URL
变量。因此,调用
Email.send()
函数理想情况下应该在命令提示符中生成输出,但实际上不会输出任何内容

在我们的生产服务器上,SMTP已正确设置,其他应用程序可以发送具有相同设置的电子邮件。我已经在那里正确配置了
MAIL\u URL
环境变量,但仍然没有发送电子邮件

谁能告诉我我的代码有问题吗?有什么我做得不对的吗

注:我甚至试着像下面的代码那样直接调用Email.send(),但仍然没有发生任何事情

if(Meteor.isServer){
Email.send({
发件人:'server@example.com',
致:我的gmail-id@gmail.com',
主题:“这是一封测试邮件”,
祝贺你,它成功了
});
}
}
});

几乎是

有关示例代码,请参见


只是想澄清一下:Meteor并没有按照这样的顺序执行客户机和服务器代码。您必须更明确地了解客户机和服务器上运行的是什么。不要考虑JavaScript页面上的线性执行,而是认为Meteor代码的每一段都是一个事件的结果。如果某段代码没有运行,那是因为没有触发它的事件。

我通过使用Meteor.methods创建一个服务器端方法来解决它,并将上面的整个代码放入其中。


谢谢你,大卫。我通过在服务器端代码中使用
Meteor.methods
创建一个新方法,然后在客户端代码中使用
method.call
调用该服务器方法,解决了这个问题。但我强烈感觉,在meteor的官方API文档中,电子邮件部分有点令人困惑。他们应该在他们的文档中提供一个更明确的例子。你也可以发布你的解决方案作为你自己问题的答案,这既能为你赢得声誉,也能帮助未来的访问者!
var SITE_URL = Meteor.absoluteUrl();

Meteor.methods({
    sendEmailNotification: function (type, sourceUser, recipients, notificationObject) {
        if (recipients.length > 0) {
            var emailFrom = 'app@example.com';
            var emailSubject = 'MyApp: ';
            var emailBody = '';
            for (var i = 0; i < recipients.length; i++) {
                recipients[i] = recipients[i] + '@example.com';
            }

            switch (type) {
                case 'item_assigned':
                    emailSubject += notificationObject.item_title;
                    emailBody += '<div style="padding:10px;">';
                    emailBody += sourceUser;
                    emailBody += ' has assigned you an action item';
                    emailBody += '</div>'
                    break;
                case 'list_shared':
                    emailSubject += notificationObject.list_title;
                    emailBody += '<div style="padding:10px;">';
                    emailBody += sourceUser;
                    emailBody += ' has shared a list with you: ';
                    emailBody += '<a href="' + SITE_URL + '#' + notificationObject.list_id + '">' + notificationObject.list_title + '</a>';
                    emailBody += '</div>'
                    break;
            }
            Email.send({
                from: emailFrom,
                bcc: recipients,
                subject: emailSubject,
                html: emailBody
            });
        }
    }
});
Meteor.call('sendEmailNotification', 'list_shared', Meteor.user().username, [sharedUserName], listDetails);