2015-07-15 5 views
5

Привета Я пытаюсь настроить мой аккаунт Gmail для отправки электронной почты для моего Метеора приложения, не очень легко до сих порОтправка электронной почты с помощью Gmail SMTP - Meteorjs

server.js

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

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

Email.send({ 
    from: "[email protected]", 
    to: "[email protected]", 
    subject: "Meteor Can Send Emails via Gmail", 
    text: "Its pretty easy to send emails via gmail." 
}); 

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

I20150715-18:14:02.641(0)? ====== BEGIN MAIL #0 ====== 
I20150715-18:14:02.642(0)? (Mail not sent; to enable sending, set the MAIL_URL environment variable.) 
I20150715-18:14:02.643(0)? MIME-Version: 1.0 
I20150715-18:14:02.643(0)? From: [email protected] 
I20150715-18:14:02.643(0)? To: [email protected] 
I20150715-18:14:02.643(0)? Subject: Meteor Can Send Emails via Gmail 
I20150715-18:14:02.643(0)? Content-Type: text/plain; charset=utf-8 
I20150715-18:14:02.643(0)? Content-Transfer-Encoding: quoted-printable 
I20150715-18:14:02.644(0)? 
I20150715-18:14:02.644(0)? Its pretty easy to send emails via gmail. 
I20150715-18:14:02.645(0)? ====== END MAIL #0 ====== 

Это может быть связано Я запускаю это на C9?

Благодаря

+0

Кажется, эти ссылки помогут и [Один] (HTTP: // stackoverflow.com/questions/29998893/meteor-mail-not-sending-despite-setting-mail-url-environment-variable) & [Two] (http: // stackoverflow.com/questions/20337309/meteor-deploy-mail-url-not-being-set) – Bikku

+1

не уверен, что это поможет, но, возможно, попробуйте порт 25 или 587. В зависимости от вашей конфигурации: https://support.google.com/a/answer/176600? hl = ru – johnsimer

+0

Возможно, это потому, что я не могу задать переменную окружения моего сайта тестирования в платформе Cloud9? –

ответ

2

Отстой, что cloud9 не позволяет устанавливать переменные среды. Возможно, вы можете установить объект Meteor.settings вместо переменной окружения?

http://docs.meteor.com/#/full/meteor_settings

По существу, вы можете передать JSON в метеор, когда вы начинаете его с помощью --settings. Они будут доступны только на стороне сервера, если они не будут обернуты под «общедоступным» объектом корня.

{ 
    'public': { 
    'some-setting': 'some-value' 
    }, 
    'other-setting': 'other-value' 
} 

Это работа для решения без каких-либо переменных окружения. Поскольку основной пакет электронной почты всегда смотрит на переменную окружения MAIL_URL, вам, вероятно, придется отправлять электронную почту через другого поставщика услуг/провайдера.

Mandrill (by Mailchimp) имеет значительный свободный уровень и позволит вам отправлять транзакционную электронную почту. Вы даже можете создать почтовый шаблон в mailchimp, экспортировать в HTML, импортировать в mandrill и передать переменные merge в своих вызовах API.

Еще лучше, есть пакет ударных для записи в API Mandrill. https://atmospherejs.com/wylio/mandrill

Надеюсь, что это поможет!

Elliott

+0

Nice, havent попробовал еще, но он выглядит потрясающе, вы должны сделать полный учебник по настройке электронной почты в Meteor, большая часть того, что я нашел в сети, либо неполная, либо устаревшая. –

+0

Приветствия, спасибо @Tomchan. Я мог бы это сделать! –

+0

Не должно быть проблем с настройкой переменных среды на Cloud9. Вы можете сделать это на оболочке, как на локальной машине, или если вы хотите, чтобы определенные переменные среды были доступны только для запущенного приложения, на панели запуска есть кнопка ENV, которая позволяет вам устанавливать пользовательские переменные среды. – Mutahhir

1

, но решил ответить на мой собственный вопрос в любом случае.

Я didnt и я не могу установить переменную env C9 или моего тестового сайта, так что поэтому.

0

Метод Meteor.startup(callback) выполняется в конце инициализации Метеор, но вы отправляете свою электронную почту перед запуском, так что вы должны отправить его в том же блоке, после process.env.MAIL_URL ..

0

Вы МОЖЕТ установить переменные среды, используя C9! Вы просто передаете его, когда вы запускаете метеорит.

НО вы не можете отправлять электронную почту с помощью SMTP, хотя на c9!

Чтобы облегчить мою жизнь, я просто не проверяю свои электронные письма на c9 с помощью Meteor. Если я абсолютно необходимо обхожу функцию электронной почты и использовать пользовательские Emailer вместо этого посылы с помощью MailGun REST API (НЕ SMTP !!) См Sending email using Gmail SMTP - Meteorjs

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