2013-08-21 4 views
12

Я делаю приложение метеорита, и у меня есть пакет паролей mrt accounts-password, а также mrt accounts-ui-bootstrap-dropdown.Почему мое приложение Meteor со своим аккаунтом не отправляет электронное письмо с подтверждением?

Я добавил кнопки входа, чтобы пользователи могли создавать учетную запись, и это работает нормально. Я использую все значения по умолчанию.

На сервере у меня есть код:

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

И когда я создаю новую учетную запись, консоль сервера печатает:

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

Так это выглядит, как он отправляет сообщение электронной почты с сервера но я никогда не получаю письмо с подтверждением в своем почтовом ящике. И я много раз пробовал, и прошло больше часа! Я также проверил папку со спамом. Что дает?

Заранее спасибо

ответ

18

Смотрите здесь: http://docs.meteor.com/#email

Если MAIL_URL не установлен (например, при запуске приложения локально), Email.send выводит сообщение на стандартный вывод вместо

Веб-серверы, такие как Meteor, не могут отправлять электронные письма самостоятельно, для этого им нужен SMTP-сервер. Вам нужно настроить его и установить его с помощью переменной MAIL_URL.

+1

А я вижу, поэтому я добавляю 'var MAIL_URL = smtp: // USERNAME: PASSWORD @ HOST: PORT /' в файл окружения? Я никогда не добавлял в файл env, как мне это сделать? – nearpoint

+0

Нет, вы настроили его как переменную среды. Кроме того, вы можете установить его с помощью 'process.env.MAIL_URL = ...', но это хакерский метод. –

+1

А так, чтобы настроить его как переменную окружения, я просто набираю 'export MAIL_URL = smtp: // USERNAME: PASSWORD @ HOST: PORT /' в терминал? Это добавит его в мою локальную компьютерную среду, но если я развернусь в Heroku, есть ли способ включить специальный .env-файл в фактический проект метеора, который можно прочитать только на сервере Heroku? – nearpoint

14

Чтобы настроить MAIL_URL, не забудьте добавить адрес электронной пакет ядра:

meteor add email 

И затем, на стороне сервера:

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

Подробнее: Verify an Email with Meteor Accounts.

 Смежные вопросы

  • Нет связанных вопросов^_^