2016-04-06 19 views
0

Otomatik form başarıyla gönderildikten sonra bir e-posta göndermeye çalışıyorum. Ben çalışmadı template.events 'submit' kullanarak denedim ve ben metermethod = "sendEmail" kullanmaya çalıştım. Yaptığım hiçbir şey işe yaramıyor. Birisi bana neyi yanlış yaptığımı söyler.form gönderildikten sonra E-posta gönder

Yol: form.html

{{#autoForm collection="JobOffers" id="jobOfferForm" type="insert" meteormethod="sendEmail"}} 
    <fieldset> 
    {{> afQuickField name='firstName'}} 

    <button type="submit" data-meteor-method="sendEmail" class="btn btn-primary">Submit</button> 
</fieldset> 
{{/autoForm}} 

Yol: server/email.js

sendEmail: function (from, subject, userId) { 
    check([from, subject, userId], [String]); 

    // Let other method calls from the same client start running, 
    // without waiting for the email sending to complete. 
    this.unblock(); 

    SSR.compileTemplate('htmlEmail', Assets.getText('html-email.html')); 

    // to find the users info for the logged in users 
    // var user = Meteor.user(); 
    var user = Meteor.users.findOne({ _id: userId }); 
    var email = (user && user.emails[0].address); 

    var emailData = { 
     // name: (candidate && candidate.profile && candidate.profile.firstName), 
     name: (user && user.profile && user.profile.firstName), 

     // favoriteRestaurant: "Honker Burger", 
     // bestFriend: "Skeeter Valentine" 
    }; 

    Email.send({ 
     to: email, 
     from: from, 
     subject: subject, 
     html: SSR.render('htmlEmail', emailData) 
    }); 

    console.log('sendEmail sent'); 
    } 
}); 

GÜNCELLEME

Yol: form.js

AutoForm.hooks({ 
    jobOfferForm: hooksObject 
}); 


var hooksObject = { 
    after: { 
     insert: function(error, result){ 
      Email.send({ 
       var otheruserId = FlowRouter.getParam('id'); 

       Meteor.call('sendEmail', 
       '[email protected]', 
       'Hello from Meteor!', 
       otheruserId);  
      };   
     } 
    } 
}; 

cevap

1

Otomatik form geri çağırma/kancalarını kullanabilirsiniz.

var hooksObject ={ 
    after: { 
     insert: function(error, result){ 
       //Send email here 
     } 
    } 
} 

GÜNCELLEME:

var hooksObject = { 
    after: { 
    insert: function(error, result){ 
      var otheruserId = FlowRouter.getParam('id'); 

      Meteor.call('sendEmail', 
      '[email protected]', 
      'Hello from Meteor!', 
      otheruserId); 
    } 
    } 
}; 

AutoForm.addHooks('jobOfferForm', hooksObject); 

fazla bilgi için autoform documentation bakınız bir çözüm olacağını şu bir ekleme e-posta göndermek istiyorum.

+0

Önerinizi uygulamaya çalışıyorum. Lütfen meteor ve programlama öğrenmeye devam ettiğim için bilgi eksikliğimi affedin. Kancalar genelde biraz kafamı karıştırdı. Onları nereye koyacağımı bilmiyorum. Dokümantasyondan geçtim, ancak çok yardımcı olamadım. Güncellemeye göz atmayı ve yanlış yaptığımı bilmeme izin verir misiniz? – bp123

+0

Hangi hata iletisini alıyorsunuz? – Areca

+0

Henüz gönderemiyorum. Yapı, Email.Send – bp123

İlgili konular