2013-08-21 9 views
12

Ich mache eine Meteor App und ich habe das mrt accounts-password Paket hinzugefügt sowie mrt accounts-ui-bootstrap-dropdown.Wie kommt es, dass meine Meteor-App mit Account-Paket keine Bestätigungs-E-Mail sendet?

Ich habe die loginbuttons hinzugefügt, damit Benutzer ein Konto erstellen können und das funktioniert gut. Ich benutze alle Standardeinstellungen.

Auf dem Server habe ich den Code:

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

Und wenn ich ein neues Konto erstellen, werden die Server-Konsole druckt:

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 ====== 

So sieht es aus wie es die E-Mail vom Server sendet aber ich erhalte nie die Bestätigungs-E-Mail in meinem Posteingang. Und ich habe es mehrmals versucht und es ist über eine Stunde her! Ich habe auch meinen Spam-Ordner überprüft. Was gibt?

Vielen Dank im Voraus

Antwort

18

Siehe hier: http://docs.meteor.com/#email

Wenn MAIL_URL nicht gesetzt ist (zB wenn die Anwendung lokal ausgeführt wird), Email.send die Nachricht an die Standardausgabe

statt ausgibt

Webserver wie Meteor können keine E-Mails selbst senden, sie benötigen dafür einen SMTP-Server. Sie müssen eine einrichten und mit MAIL_URL Variable einstellen.

+1

Ah ich sehe, ich füge 'var MAIL_URL = smtp: // BENUTZERNAME: PASSWORT @ HOST: PORT /' in die Umgebungsdatei? Ich habe noch nie zur env-Datei hinzugefügt, wie mache ich das? – nearpoint

+0

Nein, Sie haben es als Umgebungsvariable eingerichtet. Alternativ könnten Sie es mit 'process.env.MAIL_URL = ...' einstellen, aber das ist eine Hacky-Methode. –

+1

Ah, um es als eine Umgebungsvariable einzurichten Ich schreibe einfach 'export MAIL_URL = smtp: // BENUTZERNAME: PASSWORT @ HOST: PORT /' in Terminal? Dies fügt es meiner lokalen Rechnerumgebung hinzu, aber gibt es eine Möglichkeit, eine spezielle .env-Datei in das Meteor-Projekt aufzunehmen, die nur vom Heroku-Server gelesen werden kann? – nearpoint

14

die MAIL_URL zu konfigurieren, vergessen Sie nicht, den Kern E-Mail-Paket hinzuzufügen:

meteor add email 

Und dann, serverseitige: Mehr

// 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; 
}); 

Lesen: Verify an Email with Meteor Accounts.