Merge pull request #110 from cloudron-io/master

Add support for reply-to field
This commit is contained in:
Andris Reinman 2016-12-07 15:17:13 +02:00 committed by GitHub
commit 8db3672a28
9 changed files with 48 additions and 5 deletions

View file

@ -14,7 +14,7 @@ let mailer = require('../mailer');
let caches = require('../caches');
let humanize = require('humanize');
let allowedKeys = ['description', 'from', 'address', 'subject', 'template', 'source_url', 'list', 'segment', 'html', 'text', 'tracking_disabled'];
let allowedKeys = ['description', 'from', 'address', 'reply_to', 'subject', 'template', 'source_url', 'list', 'segment', 'html', 'text', 'tracking_disabled'];
module.exports.list = (start, limit, callback) => {
db.getConnection((err, connection) => {

View file

@ -12,3 +12,15 @@
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
/* Supporting wider description lists */
@media screen and (min-width: 768px) {
.dl-horizontal dt {
width: 200px;
}
.dl-horizontal dd {
margin-left: 220px;
}
}

View file

@ -88,6 +88,7 @@ router.get('/create', passport.csrfProtection, (req, res) => {
data.from = data.from || configItems.defaultFrom;
data.address = data.address || configItems.defaultAddress;
data.replyTo = data.replyTo || '';
data.subject = data.subject || configItems.defaultSubject;
let view;

View file

@ -333,6 +333,7 @@ function formatMessage(message, callback) {
name: campaign.from,
address: campaign.address
},
replyTo: campaign.replyTo,
xMailer: 'Mailtrain Mailer (+https://mailtrain.org)',
to: {
name: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' '),

View file

@ -56,6 +56,7 @@ CREATE TABLE `campaigns` (
`check_status` varchar(255) DEFAULT NULL,
`from` varchar(255) DEFAULT '',
`address` varchar(255) DEFAULT '',
`reply_to` varchar(255) DEFAULT '',
`subject` varchar(255) DEFAULT '',
`html` longtext,
`html_prepared` longtext,
@ -209,7 +210,7 @@ CREATE TABLE `settings` (
`value` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `key` (`key`)
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4;
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4;
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (1,'smtp_hostname','localhost');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (2,'smtp_port','465');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (3,'smtp_encryption','TLS');
@ -226,7 +227,7 @@ INSERT INTO `settings` (`id`, `key`, `value`) VALUES (13,'default_from','My Awes
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (14,'default_address','admin@example.com');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (15,'default_subject','Test message');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (16,'default_homepage','http://localhost:3000/');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (17,'db_schema_version','19');
INSERT INTO `settings` (`id`, `key`, `value`) VALUES (17,'db_schema_version','20');
CREATE TABLE `subscription` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`cid` varchar(255) CHARACTER SET ascii NOT NULL,

View file

@ -0,0 +1,11 @@
# Header section
# Define incrementing schema version number
SET @schema_version = '20';
# Add reply_to field
ALTER TABLE `campaigns` ADD COLUMN `reply_to` varchar(255) DEFAULT '' AFTER `address`;
# Footer section
LOCK TABLES `settings` WRITE;
INSERT INTO `settings` (`key`, `value`) VALUES('db_schema_version', @schema_version) ON DUPLICATE KEY UPDATE `value`=@schema_version;
UNLOCK TABLES;

View file

@ -91,7 +91,13 @@
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Email "from" address</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="address" id="address" value="{{address}}" placeholder="This is the address people will send replies to" required>
<input type="email" class="form-control" name="address" id="address" value="{{address}}" placeholder="This is the address people will send replies to unless reply-to address is set" required>
</div>
</div>
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Email "reply-to" address</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="reply-to" id="reply-to" value="{{replyTo}}" placeholder="If set, this is the address people will send replies to">
</div>
</div>
<div class="form-group">

View file

@ -102,7 +102,13 @@
<div class="form-group">
<label for="address" class="col-sm-2 control-label">Email "from" address</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="address" id="address" value="{{address}}" placeholder="This is the address people will send replies to" required>
<input type="email" class="form-control" name="address" id="address" value="{{address}}" placeholder="This is the address people will send replies to unless reply-to address is set" required>
</div>
</div>
<div class="form-group">
<label for="reply-to" class="col-sm-2 control-label">Email "reply-to" address</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="reply-to" id="reply-to" value="{{replyTo}}" placeholder="If set, this is the address people will send replies to">
</div>
</div>
<div class="form-group">

View file

@ -78,6 +78,11 @@
<dd>{{address}}</dd>
{{/if}}
{{#if replyTo}}
<dt>Email "reply-to" address</dt>
<dd>{{replyTo}}</dd>
{{/if}}
{{#if subject}}
<dt>Email "subject line"</dt>
<dd>{{subject}}</dd>