diff --git a/assets/css/src/common.styl b/assets/css/src/common.styl
index 622e6906ce..f590e94ff0 100644
--- a/assets/css/src/common.styl
+++ b/assets/css/src/common.styl
@@ -71,3 +71,14 @@ progress::-webkit-progress-value
progress::-moz-progress-bar
background-color: progress-foreground
border-radius: progress-border-radius
+
+/* double class is intentional here, we need to be very specific here to
+ something wrapping our warning message could override its style */
+p.sender_email_address_warning.sender_email_address_warning,
+ p.sender_email_address_warning.sender_email_address_warning a
+ color: #990000
+ text-align: left
+ align-self: flex-start;
+
+p.sender_email_address_warning:first-child
+ margin-top: 1em
diff --git a/assets/css/src/welcome_wizard.styl b/assets/css/src/welcome_wizard.styl
index b86bfd9a7f..466b3e8b9b 100644
--- a/assets/css/src/welcome_wizard.styl
+++ b/assets/css/src/welcome_wizard.styl
@@ -43,7 +43,7 @@
height: 30px
input[type="submit"]
margin: 50px 0 25px 0
- a
+ a.sender_form_small
font-size: 12px
color: #595c65
diff --git a/assets/js/src/common/sender_email_address_warning.jsx b/assets/js/src/common/sender_email_address_warning.jsx
new file mode 100644
index 0000000000..73d55f873a
--- /dev/null
+++ b/assets/js/src/common/sender_email_address_warning.jsx
@@ -0,0 +1,89 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import MailPoet from 'mailpoet';
+import ReactStringReplace from 'react-string-replace';
+
+/* https://github.com/mailcheck/mailcheck/wiki/List-of-Popular-Domains */
+const badDomains = [
+ /* Default domains included */
+ 'aol.com', 'att.net', 'comcast.net', 'facebook.com', 'gmail.com', 'gmx.com', 'googlemail.com',
+ 'google.com', 'hotmail.com', 'hotmail.co.uk', 'mac.com', 'me.com', 'mail.com', 'msn.com',
+ 'live.com', 'sbcglobal.net', 'verizon.net', 'yahoo.com', 'yahoo.co.uk',
+
+ /* Other global domains */
+ 'email.com', 'fastmail.fm', 'games.com' /* AOL */, 'gmx.net', 'hush.com', 'hushmail.com', 'icloud.com',
+ 'iname.com', 'inbox.com', 'lavabit.com', 'love.com' /* AOL */, 'outlook.com', 'pobox.com', 'protonmail.com',
+ 'rocketmail.com' /* Yahoo */, 'safe-mail.net', 'wow.com' /* AOL */, 'ygm.com' /* AOL */,
+ 'ymail.com' /* Yahoo */, 'zoho.com', 'yandex.com',
+
+ /* United States ISP domains */
+ 'bellsouth.net', 'charter.net', 'cox.net', 'earthlink.net', 'juno.com',
+
+ /* British ISP domains */
+ 'btinternet.com', 'virginmedia.com', 'blueyonder.co.uk', 'freeserve.co.uk', 'live.co.uk',
+ 'ntlworld.com', 'o2.co.uk', 'orange.net', 'sky.com', 'talktalk.co.uk', 'tiscali.co.uk',
+ 'virgin.net', 'wanadoo.co.uk', 'bt.com',
+
+ /* Domains used in Asia */
+ 'sina.com', 'sina.cn', 'qq.com', 'naver.com', 'hanmail.net', 'daum.net', 'nate.com', 'yahoo.co.jp', 'yahoo.co.kr', 'yahoo.co.id', 'yahoo.co.in', 'yahoo.com.sg', 'yahoo.com.ph', '163.com', '126.com', 'aliyun.com', 'foxmail.com',
+
+ /* French ISP domains */
+ 'hotmail.fr', 'live.fr', 'laposte.net', 'yahoo.fr', 'wanadoo.fr', 'orange.fr', 'gmx.fr', 'sfr.fr', 'neuf.fr', 'free.fr',
+
+ /* German ISP domains */
+ 'gmx.de', 'hotmail.de', 'live.de', 'online.de', 't-online.de' /* T-Mobile */, 'web.de', 'yahoo.de',
+
+ /* Italian ISP domains */
+ 'libero.it', 'virgilio.it', 'hotmail.it', 'aol.it', 'tiscali.it', 'alice.it', 'live.it', 'yahoo.it', 'email.it', 'tin.it', 'poste.it', 'teletu.it',
+
+ /* Russian ISP domains */
+ 'mail.ru', 'rambler.ru', 'yandex.ru', 'ya.ru', 'list.ru',
+
+ /* Belgian ISP domains */
+ 'hotmail.be', 'live.be', 'skynet.be', 'voo.be', 'tvcablenet.be', 'telenet.be',
+
+ /* Argentinian ISP domains */
+ 'hotmail.com.ar', 'live.com.ar', 'yahoo.com.ar', 'fibertel.com.ar', 'speedy.com.ar', 'arnet.com.ar',
+
+ /* Domains used in Mexico */
+ 'yahoo.com.mx', 'live.com.mx', 'hotmail.es', 'hotmail.com.mx', 'prodigy.net.mx',
+
+ /* Domains used in Brazil */
+ 'yahoo.com.br', 'hotmail.com.br', 'outlook.com.br', 'uol.com.br', 'bol.com.br', 'terra.com.br', 'ig.com.br', 'itelefonica.com.br', 'r7.com', 'zipmail.com.br', 'globo.com', 'globomail.com', 'oi.com.br'
+];
+
+const SenderEmailAddressWarning = ({ emailAddress }) => {
+ const domain = emailAddress.split('@').pop().toLowerCase();
+ if (badDomains.indexOf(domain) > -1) {
+ return ( {MailPoet.I18n.t('senderEmailAddressWarning1')}
+ {ReactStringReplace(
+ MailPoet.I18n.t('senderEmailAddressWarning2'),
+ /(%userDomain|%originalSender|.*<\/em>)/,
+ (match) => {
+ if (match === '%userDomain') return 'user domain'; // TODO replace with the real domain
+ if (match === '%originalSender') return { emailAddress };
+ return {match.replace(/<\/?em>/g, '')};
+ }
+ )}
+