1

Meteor-CollectionFS を使用して、PDF のファイル アップロードを行っています。S3を使用して保存していますが、これはすべて機能しています。私の質問は、ファイルを傍受してbase64Stringに変換して、Mandrillを使用してこのpdfのコピーをユーザーに電子メールで送信し、将来のために保存できるようにする方法に関するものです。

以下は私がこれまでに持っているコードです:

    Template.dropzone.events({
  'dropped #dropzone': function(e) {
      FS.Utility.eachFile(e, function(file) {

                Meteor.call('testEmailUpload', file.toString('base64'));

        var newFile = new FS.File(file);
        Images.insert(newFile, function (error, fileObj) {
          if (error) {
            toastr.error("Upload failed... please try again.");
          } else {
            toastr.success('Upload succeeded!');
          }
      });
    });
  }
});

メール送信のメソッド呼び出し。

'testEmailUpload': function (base64String){
        Mandrill.messages.send({
                message: {
                        subject: 'Test Email',
                        from_email: "xxxxxxxx",
                        from_name: "xxxxxxxx",
                        to: [{ email: "xxxxxxxx"}],
                        text: "TestEmail Upload Files",
                        headers: {"Reply-To": "xxxxxxxx"    },
                        attachments: [{
                                type: "application/pdf",
                                name: "TestPDF.pdf",
                                content: base64String
                        }]
                }
        },
        function(result) {
        }, function(e) {
                // Mandrill returns the error as an object with name and message keys
                console.log('A mandrill error occurred: ' + e.name + ' - ' + e.message);
                // A mandrill error occurred: Unknown_Subaccount - No subaccount exists with the id 'customer-123'
        });
    }

これは問題なくアップロードできます。ただし、実際のbase64stringをそのメソッドに渡すために何を呼び出す必要があるのか​​ わかりません。現在、メールは送信されていますが、pdf は正しく作成されていません。

どんな助けでも大歓迎です。

4

0 に答える 0