mailanes

所属分类:博客
开发工具:Ruby
文件大小:200KB
下载次数:0
上传日期:2023-06-04 05:28:57
上 传 者sh-1993
说明:  智能电子邮件传递系统(帮助我管理博客的订户,并每月向他们发送新闻稿)
(Smart E-mail Delivery System (helps me manage subscribers to my blog and send them monthly newsletters))

文件列表:
.0pdd.yml (93, 2023-09-04)
.pdd (133, 2023-09-04)
.rubocop.yml (865, 2023-09-04)
.rultor.yml (1495, 2023-09-04)
.simplecov (1605, 2023-09-04)
CHECKS (14, 2023-09-04)
Gemfile (2225, 2023-09-04)
Gemfile.lock (7713, 2023-09-04)
LICENSE.txt (1083, 2023-09-04)
Procfile (43, 2023-09-04)
Rakefile (2804, 2023-09-04)
config.ru (1199, 2023-09-04)
cucumber.yml (123, 2023-09-04)
deploy.sh (350, 2023-09-04)
liquibase (0, 2023-09-04)
liquibase\2018 (0, 2023-09-04)
liquibase\2018\001-initial-schema.xml (3318, 2023-09-04)
liquibase\2018\002-unique-constraints.xml (1699, 2023-09-04)
liquibase\2018\003-active-recipient.xml (1584, 2023-09-04)
liquibase\2018\004-delivery-relax.xml (1562, 2023-09-04)
liquibase\2018\005-letter-place.xml (1577, 2023-09-04)
liquibase\2018\006-campaign-speed.xml (1583, 2023-09-04)
liquibase\2018\007-list-stop.xml (1578, 2023-09-04)
liquibase\2018\008-campaign-exhausted.xml (1566, 2023-09-04)
liquibase\2018\009-delivery-nullable.xml (1653, 2023-09-04)
liquibase\2018\010-letter-speed.xml (1581, 2023-09-04)
liquibase\2018\011-some-indexes.xml (2148, 2023-09-04)
liquibase\2018\012-recipient-bounced.xml (1586, 2023-09-04)
liquibase\2018\013-source.xml (2317, 2023-09-04)
liquibase\2018\014-source-index.xml (1586, 2023-09-04)
... ...

[![EO principles respected here](http://www.elegantobjects.org/badge.svg)](http://www.elegantobjects.org) [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/mailanes)](http://www.rultor.com/p/yegor256/mailanes) [![We recommend RubyMine](http://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/) [![rake](https://github.com/yegor256/mailanes/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/mailanes/actions/workflows/rake.yml) [![PDD status](http://www.0pdd.com/svg?name=yegor256/mailanes)](http://www.0pdd.com/p?name=yegor256/mailanes) [![Test Coverage](https://img.shields.io/codecov/c/github/yegor256/mailanes.svg)](https://codecov.io/github/yegor256/mailanes?branch=master) [![Maintainability](https://api.codeclimate.com/v1/badges/451556110dacf73cc6f6/maintainability)](https://codeclimate.com/github/yegor256/mailanes/maintainability) [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/mailanes/blob/master/LICENSE.txt) [![Availability at SixNines](https://www.sixnines.io/b/8f0c)](https://www.sixnines.io/h/8f0c) [![Hits-of-Code](https://hitsofcode.com/github/yegor256/mailanes)](https://hitsofcode.com/view/github/yegor256/mailanes) It's an e-mail sending web app. Read this blog post, it explains how it works: [_Mailanes.com Helps Manage Newsletters and Mailing Lists_](https://www.yegor256.com/2018/10/30/mailanes.html). ## How to Configure? There are few entities you can configure via simple [YAML](http://yaml.org/) settings, including lists, lanes, campaigns, letters, and recipients. ### List ```yaml title: My subscribers notify: # Notify this email every time a new subscriber # is added to the list through the /subscribe URL email: yegor256@gmail.com # Notify in Telegram chat. You can get this number # just by starting a chat with https://t.me/mailanes_bot telegram: 136544085 # You may ignore some notifications ignore: - subscribe - unsubscribe - add - comment - download - upload - bounce # List of GitHub account who also have access to this list # and can add recipients to it, via /add?list=ID URL. friends: - yegor256 # If this is set to TRUE an email right after being added # to this list will be de-activated in all other lists exclusive: true # If this is TRUE, all new recipients that get into the list via the # /subscribe link, will be marked as non-yet-confirmed. They will have # to click the link, which is available in your Markdown template # as {{confirm}} (similar to the {{unsubsribe}} you have there). # The default is FALSE. confirmation_required: true ``` ### Lane ```yaml title: Monthly newsletters # The FROM field of all letters to be sent from this # Lane. This can be overwritten by each individual Letter. from: Yegor Bugayenko # The CC of the email to be sent cc: - Yegor Bugayenko # The BCC of the email to be sent bcc: - Yegor Bugayenko # The TO field of all emails to be sent, which # you don't need to specify usually, since this # address is taken from the recipient details, but sometimes # you may need this. to: Yegor Bugayenko # The email to collect all bounces (the default is `reply@mailanes.com`) bounces: reply@mailanes.com # SMTP parameters of the email sending server smtp: host: email-smtp.us-east-1.amazonaws.com port: 587 user: AKIAI1TIS4FF6UGJT3CQ password: ArPxO8gf56y02G8cKM80IpvMQve8Pss+L4+inJZ3UG3t # Here you can specify the Telegram transport details, if # some of your letters are going to be delivered via Telegram. telegram: chat_id: 7389473289 ``` ### Campaign ```yaml # The title of the campaign title: Monthly # Stop the campaign at this date (it will be deactivated automatically) until: 03-09-2018 # Maximum amount of emails to be sent per day speed: 100 notify: # Notify in Telegram chat. You can get this number # just by starting a chat with https://t.me/mailanes_bot telegram: 136544085 # Send fake emails to this address, in order to # lower the bounce-back stats of the SMTP providers (recommended) decoy: # How many fake emails per each real email amount: 0.1 # Destination address ('*' will be replaced by a random 0-9 number) address: my-fake***@example.com ``` ### Letter ```yaml # The title of the letter title: Aug 2018 # The subject of all emails to be sent subject: There are some great news, guys! # The FROM field of all emails to be sent from: Yegor Bugayenko # The CC of the email to be sent cc: - Yegor Bugayenko # The BCC of the email to be sent bcc: - Yegor Bugayenko # The TO field of all emails to be sent, which # you don't need to specify usually, since this # address is taken from the recipient details, but sometimes # you may need this. to: Yegor Bugayenko # When this Letter has to be deactivated until: 03-09-2018 # For how many days/hours/minutes the campaign should # not send out any letters after it sends this one. There # are three possible formats: # hh:mm:ss - exactly how much time it should relax # dd-mm-yyyy - when exactly it should relax # sss - in how many seconds relax: "20:0:0" # The ID of the letter to quote while sending this one quote: 12 # This can be either SMTP or Telegram. If it's SMTP, you have # to specify the SMTP section in the Lane. If it's Telegram, # you have to specify telegram chat ID in the Lane. transport: SMTP # Maximum amount of emails to be sent per day speed: 100 # Turn OFF email opening tracking feature (ON by default) tracking: off ``` Here is how your Liquid template may look like: ```liquid {% if first %} {{first}}, {% else %} Hi, {% endif %} How are you? Thanks for joining my list. Please [click here]({{confirm}}) to confirm that you are serious and want to stay. ”
Yegor Bugayenko
To remove your email ({{email}}) from the list, [click here]({{unsubscribe}}). ``` ### Recipient Not implemented yet... ## API You can retrieve the data from the system via the API. First, you have to get the authorization code from the [API page](https://www.mailaines.com/api). Then, add it to each HTTP request you make, as `auth` URI parameter. For example, to see the total count of all active subscribers of your list: `/api/lists/123/active_count.json?auth=74fa8672...` All URIs: * `/api/lists/:id/active_count.json`: total active subscibers in the list * `/api/lists/:id/per_day.json`: new subscribers per day (last 10 days stat, change with `days`) * `/api/campaigns/:id/deliveries_count.json`: deliveries per day (last day, change with `days`) * more coming... ## How to contribute Read [these guidelines](https://www.yegor256.com/2014/04/15/github-guidelines.html). Make sure you build is green before you contribute your pull request. You will need to have [Ruby](https://www.ruby-lang.org/en/) 2.3+, Java 8+, Maven 3.2+, PostgreSQL 10+, and [Bundler](https://bundler.io/) installed. Then: ```bash $ bundle update $ bundle exec rake ``` If it's clean and you don't see any error messages, submit your pull request. To run a single unit test you should first do this: ```bash $ bundle exec rake pgsql liquibase run ``` And then, in another terminal (for example): ```bash $ bundle exec ruby test/test_campaign.rb -n test_iterates_lists ``` Should work.

近期下载者

相关文件


收藏者