электронная почта для подтверждения с аккаунтами-google,accounts-facebook

У меня есть работающее приложение, которое отправляет письма с подтверждением в случае создания имени электронной почты/учетной записи, но не отправляет письмо с подтверждением, если я вхожу в систему с помощью google/facebook; вероятно, это связано с адресом электронной почты, который находится в services.google.email; как я могу установить поле «в» в Accounts.emailTemplates, если оно существует.

configureAccounts = function() {
    setMailVerification(enableMailVerification);
};

setMailVerification = function() {
    Accounts.emailTemplates.from = '[email protected]';
    Accounts.emailTemplates.verifyEmail = {
        subject : function(user) {
            return "Confirmation"
        },
        text : function(user, url) {
            var greeting = (user.profile && user.profile.nick) ? ("Hello " + user.profile.nick + ",") : "Hello,";
            return greeting + 
                "\n\n"  + "Thank you for registration."+
                "\n"    + "To confirm click the following link:" + url +
                "\n\n"  + "thank you."
        }
    };

    Accounts.config({
        sendVerificationEmail : true,
        forbidClientAccountCreation : false
    });
};

пожалуйста, дайте мне знать, где я должен указать ... services.google.email в случае входа в Google и то же самое для facebook...

другими словами, как я могу отправить электронное письмо с подтверждением на Meteor.user().services.google.email .. (даже отзыв sendUserVerificationEmail с этим электронным письмом не работает, поскольку его нет в «электронных письмах»)


person marcinwal    schedule 15.03.2016    source источник


Ответы (1)


Я изменил свойство .email onCreateUser следующим образом:

if(user.services != undefined) {
    console.log('services in onCreateUser');
    user.sentVerificationEmail = false;
    user.emails =[];

    var emailServices = user.services.google != undefined ?
        user.services.google.email :
        user.services.facebook.email;
    user.emails.push({
        address : emailServices,
        verified : false
    });
}

if (options.profile)
    user.profile = options.profile;

return user;

Затем я позвонил Accounts.sentVerificationEmail, затем onLogin .. и это сработало;

всем спасибо за внимание

person marcinwal    schedule 15.03.2016