{"id":400273,"date":"2026-11-09T09:18:31","date_gmt":"2026-11-09T09:18:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/meil-ro-transactional-email-newsletters\/"},"modified":"2026-11-09T09:18:00","modified_gmt":"2026-11-09T09:18:00","slug":"meilro","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/meilro\/","author":23600440,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1.4","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"meil.ro \u2013 Transactional Email & Newsletters","header_author":"meil.ro","header_description":"Sends WordPress emails through meil.ro and gathers subscribers with forms, a popup and a checkbox at checkout.","assets_banners_color":"f8f7f3","last_updated":"2026-11-09 09:18:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/meilro\/meil-wordpress","header_author_uri":"https:\/\/meil.ro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":85,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"meil","date":"2026-11-09 09:18:00","revision":3792137}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3792766,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3792766,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3792134,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3792134,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"meil\/form":{"name":"meil\/form","title":"Meil Form"},"meil\/preferences":{"name":"meil\/preferences","title":"Meil Preferences"}},"tagged_versions":["1.3.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[267,455,197,20913,48586],"plugin_category":[41,42],"plugin_contributors":[291615],"plugin_business_model":[],"class_list":["post-400273","plugin","type-plugin","status-publish","hentry","plugin_tags-email","plugin_tags-newsletter","plugin_tags-romania","plugin_tags-subscription-form","plugin_tags-transactional-email","plugin_category-communication","plugin_category-contact-forms","plugin_contributors-meil","plugin_committers-meil"],"banners":{"banner":"https:\/\/ps.w.org\/meilro\/assets\/banner-772x250.png?rev=3792134","banner_2x":"https:\/\/ps.w.org\/meilro\/assets\/banner-1544x500.png?rev=3792134","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/meilro\/assets\/icon-128x128.png?rev=3792766","icon_2x":"https:\/\/ps.w.org\/meilro\/assets\/icon-256x256.png?rev=3792766","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Connects your site to <a href=\"https:\/\/meil.ro\">meil.ro<\/a>, a Romanian service for transactional email and newsletters. You need a meil.ro account to use it.<\/p>\n\n<ul>\n<li>All WordPress email goes through meil.ro: password resets, WooCommerce orders, form notifications.<\/li>\n<li>If meil.ro can't be reached, emails wait and go out later. Nothing is sent twice.<\/li>\n<li>Emails meil.ro refuses show up under meil.ro &gt; Unsent, where you can send them again.<\/li>\n<li>If a plugin sends from an address meil.ro can't send from (a visitor's Gmail, for example), the email goes from your default address and the original one becomes the Reply-To.<\/li>\n<li>Subscription forms, as a block or a shortcode, with or without email confirmation.<\/li>\n<li>Any form can also show as a popup, a slide-in or a bar.<\/li>\n<li>A sign-up checkbox at WooCommerce checkout and on registration.<\/li>\n<li>Forms made with Contact Form 7, WPForms, Fluent Forms, Gravity Forms or Elementor Pro can add subscribers too.<\/li>\n<li>A list of sent emails, with what happened to each one.<\/li>\n<li>An email preferences page for logged-in users.<\/li>\n<li>Works with WPML and Polylang.<\/li>\n<\/ul>\n\n<p>Campaigns, templates and audiences are managed in the meil.ro dashboard.<\/p>\n\n<p>The admin screens use the IBM Plex Sans font, bundled with the plugin (SIL Open Font License 1.1, see <code>assets\/fonts\/OFL.txt<\/code>).<\/p>\n\n<h3>External services<\/h3>\n\n<p>The plugin talks to the meil.ro API (<code>https:\/\/api.meil.ro<\/code>), and only after you save an API key. Every request includes the key and the plugin and WordPress versions.<\/p>\n\n<p>What it sends:<\/p>\n\n<ul>\n<li><strong>Emails<\/strong>, when \"Send WordPress mail through meil\" is on: every email sent with <code>wp_mail()<\/code>, with its addresses, subject, content, headers and attachments.<\/li>\n<li><strong>Sign-ups<\/strong>, from the plugin's forms and popup, the sign-up checkbox and connected form plugins: the email address, the name if the form asks for it, the chosen lists, the checkbox answers with their text, where they signed up and the site language. With email confirmation, also the confirmation and thank-you page addresses. Without it, the time and the visitor's IP address, as proof of consent.<\/li>\n<li><strong>Confirming on your site<\/strong>: the token from the confirmation email, plus the visitor's IP address when they press the button.<\/li>\n<li><strong>Email preferences<\/strong>: the logged-in user's email address. When they join a list for the first time, also their name, the time and their IP address.<\/li>\n<li><strong>User changes<\/strong>: the old and new address when a user changes their email, and a deleted user's address if \"Deleted users\" is on.<\/li>\n<li><strong>Admin screens<\/strong>: the API key check, the audiences and the sent emails.<\/li>\n<\/ul>\n\n<p>meil.ro: <a href=\"https:\/\/meil.ro\/terms\">Terms of service<\/a>, <a href=\"https:\/\/meil.ro\/privacy\">Privacy policy<\/a>, <a href=\"https:\/\/meil.ro\/dpa\">Data processing agreement<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>, search for <strong>meil.ro<\/strong>, install it and activate it.<\/li>\n<li>In meil.ro, create an API key under <strong>API Keys<\/strong>. \"Transactional only\" is enough for sending email. Forms and sign-ups need \"Full access\".<\/li>\n<li>In WordPress, open <strong>meil.ro<\/strong>, paste the key and set a default from address, like <code>wordpress@example.com<\/code>.<\/li>\n<li>Send a test email from the same screen.<\/li>\n<li>Build a form under <strong>meil.ro &gt; Forms<\/strong> and add it to a page with the <strong>meil.ro form<\/strong> block or its shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20if%20meil.ro%20is%20down%3F\"><h3>What happens if meil.ro is down?<\/h3><\/dt>\n<dd><p>Emails wait on your site and are retried for up to 22 hours. Nothing is sent twice. Sign-ups from the checkout checkbox and form plugins wait the same way.<\/p>\n\n<p>If meil.ro refuses an email (a bad address, for example), it shows up under <strong>meil.ro &gt; Unsent<\/strong> with the reason, and you can send it again from there. <code>wp_mail()<\/code> returns <code>false<\/code> and <code>wp_mail_failed<\/code> fires, like in WordPress itself.<\/p><\/dd>\n<dt id=\"which%20from%20address%20is%20used%3F\"><h3>Which From address is used?<\/h3><\/dt>\n<dd><p>The one the email asks for, as long as its domain is verified in meil.ro. WooCommerce's \"From address\" setting works too.<\/p>\n\n<p>If the domain isn't verified (a contact form sending \"from\" the visitor, for example), the email goes from your default address and the original one becomes the Reply-To. Replying still reaches the visitor.<\/p><\/dd>\n<dt id=\"which%20api%20key%20do%20i%20need%3F\"><h3>Which API key do I need?<\/h3><\/dt>\n<dd><p>Any key can send email. Forms, popups, the sign-up checkbox, form plugins and the preferences page add contacts, so they need \"Full access\".<\/p>\n\n<p>If your meil.ro account sends for more than one site, limit the key to this site's domain. It also covers its subdomains, and the forms only show this site's audiences.<\/p><\/dd>\n<dt id=\"can%20i%20use%20only%20the%20forms%2C%20without%20sending%20wordpress%20email%20through%20meil.ro%3F\"><h3>Can I use only the forms, without sending WordPress email through meil.ro?<\/h3><\/dt>\n<dd><p>Yes. Uncheck \"Send WordPress mail through meil\" in the settings.<\/p><\/dd>\n<dt id=\"can%20customers%20sign%20up%20at%20checkout%20or%20on%20registration%3F\"><h3>Can customers sign up at checkout or on registration?<\/h3><\/dt>\n<dd><p>Yes. Set it up under <strong>meil.ro &gt; Settings &gt; Sign-up checkbox<\/strong>. The checkbox starts unticked. With the Checkout block it needs WooCommerce 8.9 or later. Orders and registrations never wait on meil.ro.<\/p><\/dd>\n<dt id=\"can%20my%20contact%20form%207%2C%20wpforms%2C%20fluent%20forms%2C%20gravity%20forms%20or%20elementor%20pro%20forms%20add%20subscribers%3F\"><h3>Can my Contact Form 7, WPForms, Fluent Forms, Gravity Forms or Elementor Pro forms add subscribers?<\/h3><\/dt>\n<dd><p>Yes, under <strong>meil.ro &gt; Form plugins<\/strong>. For each form, pick the lists, the email field, and who joins: everyone who sends it, or only those who tick a checkbox. Contact forms should use the checkbox, since people writing to you haven't asked for your newsletter.<\/p>\n\n<p>The form keeps working even if something goes wrong on meil.ro's side.<\/p><\/dd>\n<dt id=\"how%20do%20popups%20work%3F\"><h3>How do popups work?<\/h3><\/dt>\n<dd><p>Set one up under <strong>meil.ro &gt; Settings &gt; Popup<\/strong>. You pick the form, the style, when it opens, on which pages and how many days it stays away after being closed. It never shows on the cart, checkout or account pages, and stops once someone signs up. On phones it opens at the bottom of the screen.<\/p><\/dd>\n<dt id=\"should%20visitors%20confirm%20by%20email%3F\"><h3>Should visitors confirm by email?<\/h3><\/dt>\n<dd><p>We recommend it, and new forms have it on. People are only subscribed after they press the button in the email, which keeps typos and bots off your list.<\/p><\/dd>\n<dt id=\"can%20visitors%20confirm%20on%20my%20own%20site%3F\"><h3>Can visitors confirm on my own site?<\/h3><\/dt>\n<dd><p>Yes. In the form editor, under \"Where visitors confirm\", pick a page. The confirmation email then opens that page, which shows the visitor's address, their lists and a button. It shows above the page content, or wherever you put <code>[meil_confirm]<\/code>.<\/p>\n\n<p>The page must be published and on the domain your lists send from, or a subdomain of it.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20how%20the%20forms%20look%3F\"><h3>How do I change how the forms look?<\/h3><\/dt>\n<dd><ul>\n<li>Under <strong>meil.ro &gt; Settings &gt; Forms look<\/strong>, add your theme's classes to buttons, fields and checkboxes (for example <code>btn btn-primary<\/code> or <code>form-control<\/code>).<\/li>\n<li>Override the CSS variables on <code>.meil-form<\/code>, <code>.meil-prefs<\/code> or <code>.meil-confirm<\/code>, like <code>--meil-accent<\/code>, <code>--meil-border<\/code>, <code>--meil-radius<\/code> or <code>--meil-card<\/code>.<\/li>\n<li>Turn off \"Form styles\" under Forms look and write your own CSS.<\/li>\n<li>Copy <code>form.php<\/code>, <code>preferences.php<\/code> or <code>confirm.php<\/code> from the plugin's <code>templates<\/code> folder into <code>yourtheme\/meil\/<\/code> to change the markup.<\/li>\n<li>Use the <code>meil_confirm_text<\/code> and <code>meil_preferences_choices<\/code> filters.<\/li>\n<\/ul>\n\n<p>Turn on <strong>Test mode<\/strong> under Forms look while you work. Administrators then see the popup on every page and examples on the confirmation page. Visitors don't see anything different.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20a%20multilingual%20site%3F\"><h3>Does it work on a multilingual site?<\/h3><\/dt>\n<dd><p>Yes, with WPML or Polylang. Your form texts, list labels and popup text are translated with the rest of your site's strings, so one form works in every language.<\/p><\/dd>\n<dt id=\"can%20a%20form%20ask%20visitors%20to%20accept%20my%20terms%3F\"><h3>Can a form ask visitors to accept my terms?<\/h3><\/dt>\n<dd><p>Yes. Add a checkbox in the form editor, link it to your terms and make it required. Each answer is saved on the contact, along with the text the visitor saw.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes, forms and popups both do.<\/p><\/dd>\n<dt id=\"is%20there%20spam%20protection%3F\"><h3>Is there spam protection?<\/h3><\/dt>\n<dd><p>Yes. Forms have a hidden field that catches bots and a limit on sign-ups per visitor. With email confirmation on, nobody is subscribed without pressing the button.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>First release on WordPress.org.<\/li>\n<li>Emails and sign-ups are retried when meil.ro can't be reached. Refused emails are listed under meil.ro &gt; Unsent.<\/li>\n<li>Emails from an address meil.ro can't send from go from the default address, with the original as Reply-To.<\/li>\n<li>WooCommerce's From address is used when it's on a verified domain.<\/li>\n<li>Sign-up checkbox at WooCommerce checkout and registration.<\/li>\n<li>Blocks for forms and email preferences.<\/li>\n<li>Popups, slide-ins and bars.<\/li>\n<li>Contact Form 7, WPForms, Fluent Forms, Gravity Forms and Elementor Pro support.<\/li>\n<li>Sent emails list.<\/li>\n<li>Forms can sign visitors up to all their lists at once.<\/li>\n<li>WPML and Polylang support for form and popup texts.<\/li>\n<li>Test mode for designing the popup and the confirmation page.<\/li>\n<li>New look for the admin screens and the confirmation box.<\/li>\n<li>Better visitor IP detection behind proxies.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Visitors can confirm on a page of your site instead of on meil.ro.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Subscription forms, built under meil.ro &gt; Forms. They replace the [meil_signup] shortcode.<\/li>\n<li>Email preferences page for logged-in users.<\/li>\n<li>Form checkboxes for terms and consent.<\/li>\n<li>A user's lists follow them when they change their email. Deleting a user can delete their contact.<\/li>\n<li>Romanian translation.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release, with wp_mail() delivery through meil.ro.<\/li>\n<\/ul>","raw_excerpt":"Sends WordPress emails through meil.ro and gathers subscribers with forms, a popup and a checkbox at checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/400273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=400273"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/meil"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=400273"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=400273"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=400273"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=400273"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=400273"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=400273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}