2013-08-21 15 views
12

Sto creando un'app meteorica e ho aggiunto il pacchetto account-password mrt e account mrt-ui-bootstrap-dropdown.Come mai la mia app Meteor con pacchetto di account non sta inviando un'email di verifica?

Ho aggiunto i pulsanti di accesso in modo che gli utenti possano creare un account e che funzioni perfettamente. Sto usando tutte le impostazioni predefinite.

Sul server Ho il codice:

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

E quando creo un nuovo account, le stampe console del server:

I20130821-18:31:42.105(-4)? ====== BEGIN MAIL #0 ====== 
I20130821-18:31:42.106(-4)? MIME-Version: 1.0 
I20130821-18:31:42.107(-4)? From: "Meteor Accounts" <[email protected]> 
I20130821-18:31:42.108(-4)? To: [email protected] 
I20130821-18:31:42.108(-4)? Subject: How to verify email address on localhost:3000 
I20130821-18:31:42.109(-4)? Content-Type: text/plain; charset=utf-8 
I20130821-18:31:42.109(-4)? Content-Transfer-Encoding: quoted-printable 
I20130821-18:31:42.109(-4)? Hello, 
I20130821-18:31:42.110(-4)? To verify your account email, simply click the link below. 
I20130821-18:31:42.110(-4)? http://localhost:3000/#/verify-email/C2vJeaDLeMkkWmcRY 
I20130821-18:31:42.111(-4)? Thanks. 
I20130821-18:31:42.111(-4)? ====== END MAIL #0 ====== 

così sembra che invia l'e-mail dal server ma non ho mai ricevuto l'email di verifica nella mia casella di posta. E ho provato più volte ed è passata più di un'ora! Ho anche controllato la mia cartella spam. Cosa dà?

Grazie in anticipo

risposta

18

Vedi qui: http://docs.meteor.com/#email

Se MAIL_URL non è impostato (ad esempio, quando si esegue l'applicazione a livello locale), Email.send emette il messaggio sullo standard output invece

I server Web come Meteor non possono inviare e-mail da soli, hanno bisogno di un server SMTP per farlo. È necessario impostarne uno e impostarlo con la variabile MAIL_URL.

+1

Ah, vedo, così aggiungo 'var MAIL_URL = smtp: // NOME UTENTE: PASSWORD @ HOST: PORT /' al file dell'ambiente? Non ho mai aggiunto al file env, come faccio a fare questo? – nearpoint

+0

No, lo si imposta come variabile di ambiente. In alternativa, è possibile impostarlo con 'process.env.MAIL_URL = ...', ma questo è un metodo hacky. –

+1

Ah per configurarlo come variabile di ambiente, digito semplicemente "export MAIL_URL = smtp: // NOME UTENTE: PASSWORD @ HOST: PORT /" nel terminale? Questo lo aggiungerà al mio ambiente macchina locale, ma se lo distribuisco a Heroku, c'è un modo per includere un file .env speciale nel progetto meteor reale che è leggibile solo dal server Heroku? – nearpoint

14

Per configurare il MAIL_URL, non dimenticare di aggiungere il pacchetto e-mail di base:

meteor add email 

E poi, sul lato server:

// server/smtp.js 
Meteor.startup(function() { 
    smtp = { 
    username: 'your_username', // eg: [email protected] 
    password: 'your_password', // eg: 3eeP1gtizk5eziohfervU 
    server: 'smtp.gmail.com', // eg: mail.gandi.net 
    port: 25 
    } 

    process.env.MAIL_URL = 'smtp://' + encodeURIComponent(smtp.username) + ':' + encodeURIComponent(smtp.password) + '@' + encodeURIComponent(smtp.server) + ':' + smtp.port; 
}); 

Read More: Verify an Email with Meteor Accounts.

Problemi correlati