horst

WireMailSmtp

Recommended Posts

2 hours ago, Sonia Margollé said:

I use OVH 

The site is on for more than a year now,  I had a lot of "Error in hnsmtp::send : cannot connect to smtp-server!"  
even if I never change module configuration and if I check it's ok. And now the recipients ...

All the emails that I send using the module it's only to 1 recipients and sometimes another on in copy.

Check this out:

http://docs.mailpoet.com/article/49-lists-of-hosts-and-their-sending-limits

 

For OVH:

591f10824f724_ScreenShot2017-05-19at11_33_18.thumb.png.b068c9e4bb22c4e28fe4178a05a8dd6e.png

 

Most likely because of bounces, your site is unable to send emails.

A couple of things you can do:

1. Contact OVH and ask them to give you some idea of what your email's standing is.

2. Use a service like Sendgrid (sendgrid.com) as an off-site SMTP delivery service. If I remember correctly, Sendgrid is free up to 12,000 emails a day.

 

Hope this helps!

  • Like 1

Share this post


Link to post
Share on other sites

Thanks, I will check that !

I try to put some log in the module and I was able to have a more detailed error message, I think

"554 5.7.1 <---->: Recipient address rejected: You have exceeded the limit of 400 messages per hour and per IP address. Please, re-try later."

What I don't understand is how that can be, never 400 messages are send via the website, and not 20 per hour to.  Oo
If I wait like 30 seconds, it's ok again.  And the emails are good, the clients can send emails directly without problems. 

Knowing it's a shared hosting, is it possible that other peoples on the server are blocking everyone ? 

  • Like 1

Share this post


Link to post
Share on other sites
3 minutes ago, Sonia Margollé said:

"554 5.7.1 <---->: Recipient address rejected: You have exceeded the limit of 400 messages per hour and per IP address. Please, re-try later."

Knowing it's a shared hosting, is it possible that other peoples on the server are blocking everyone ? 

If it's shared hosting and all of the sites on your IP are potentially sending emails, that is almost certainly your problem.

Again, I'd look into an email delivery service like Sendgrid, Mandrill or even TurboSMTP - these will help with deliverability, and you won't be competing with other sites on the same IP to get emails out.

  • Like 2

Share this post


Link to post
Share on other sites

I'm not knocking sendgrid, or any other email service. After working in the adult industry (I know, don't judge me. I was young and needed the money :) ), I am not too fond of services that want a 'contacts list' stored at their site. You may want to consider gmail, or the like, for sending small quantities of emails. If you need an email company domain, eg, yourname@yourdomain.com, then they will provide that for a small monthly fee, usually $5 or so. I have never exceeded gmail's limit, and it is far better than trying to run your own email server.

Also, the majority of my applications require subscribers to use their company email address. I have the company create a site admin email address on behalf of the application, which eliminates the need for any third-party solutions.

If you need the capacity of those email services, then by all means use them. They handle that particular need well. Just be cautious of how they treat your contacts, if they require it.

Another possibility is to move to a VPS hosting account that has an email feature. That way you are the only user that they audit to affect any email limitations.

 

  • Like 1

Share this post


Link to post
Share on other sites

I have a little problem:

I installed the plugin, set up my form submit PHP file and when I do a connection check - everything is ok! There is no error at all.

When sending the mail it is logged and everything seems fine. Except one thing: The message is never delivered!

Of course I tried to look into the spam folder - but no. The email just seems to disappear when hitting the submit button.

To make sure that my server is running correctly i tried the native mail() PHP method with the form - that is working!

 

So what might be the error in this case? Any ideas?

 

Share this post


Link to post
Share on other sites
15 hours ago, cstevensjr said:

Make sure you are at least testing sending from one mail provider to another.

Here are two links that may help you:

http://kb.mailchimp.com/delivery/spam-filters/im-not-receiving-my-test-campaigns

https://productforums.google.com/forum/#!topic/gmail/HB31aN_GR_8

 

Sending e-mails from one acccount to another works fine. I just can't get wiremail to do it. I even tried it with different mail accounts.

Share this post


Link to post
Share on other sites

If possible, What domain where you sending from and to what domain where you sending to in your test emails?  Are these accounts/SMTP Service associated with Your Hosting Provider, Gmail, Microsoft or any other third-party email provider?

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, cstevensjr said:

If possible, What domain where you sending from and to what domain where you sending to in your test emails?  Are these accounts/SMTP Service associated with Your Hosting Provider, Gmail, Microsoft or any other third-party email provider?

I tried both. Sending from mail accounts of my hosting provider to the same accounts. Or third party mail providers. Nothing gets delivered. I think I'll ask the support of my hosting provider.

Share this post


Link to post
Share on other sites

You should try to uninstall WireMailSMTP and try sending with native WireMail. This should work, as it uses the PHP mail() function.

If WireMail works, and WireMailSMTP don't, it might be firewall restricted by your hosters settings. Native PHP mail function is controlled and allowed by your hoster, other (foreign) connections (other IPs or only Ports) maybe blocked by firewall settings of your hoster. (?)

  • Like 3

Share this post


Link to post
Share on other sites
23 hours ago, horst said:

You should try to uninstall WireMailSMTP and try sending with native WireMail. This should work, as it uses the PHP mail() function.

If WireMail works, and WireMailSMTP don't, it might be firewall restricted by your hosters settings. Native PHP mail function is controlled and allowed by your hoster, other (foreign) connections (other IPs or only Ports) maybe blocked by firewall settings of your hoster. (?)

That's good point to start with!

I have already contacted my provider becaouse I think there could be a firewall issue, too. Otherwise I have no explanation for this.

However, I will definetly test out the native WireMail variant.

Share this post


Link to post
Share on other sites

Problem solved.

My bad. In my source code I had commented out the following line:

$numSent = $mail->send();

That was the case because a little time ago when I was developing the submit form, I must have tried to test something. 

What made me so confused was the fact that the activity log still said "mail send" so I never looked into this part of the code again.

Now that's a really stupid thing, sorry that I bothered you with it. 

 

  • Like 2

Share this post


Link to post
Share on other sites

I've installed WireMailSmtp on my locally hosted ProcessWire site v 3.0.62 and filled in my sendgrid data and get a WireMailSmtpConfig: SUCCESS! upon testing

When I try the following:

if($mail->className != 'WireMailSmtp') {
    echo "<p>Couldn't get the right WireMail-Module (WireMailSmtp). found: {$mail->className}</p>";
}

I get "Couldn't get the right WireMail-Module (WireMailSmtp). found: WireMail"

How do I get the wiremail function to make use of the WireMailSMTP addon?

Share this post


Link to post
Share on other sites

Interesting would be how you have initialized $mail?

Share this post


Link to post
Share on other sites

In PW 3.0.42 when editing a user this error appears up top:

Quote

Strict Standards: Declaration of WireMailSmtp::attachment() should be compatible with ProcessWire\WireMail::attachment($value, $filename = '') in /Applications/AMPPS/www/catco/site/assets/cache/FileCompiler/site/modules/WireMailSmtp-master/WireMailSmtp.module on line 22

 

Share this post


Link to post
Share on other sites
On 3.9.2017 at 2:46 AM, hellomoto said:

In PW 3.0.42 when editing a user this error appears up top:

 

@hellomoto I couldn't reproduce this. Which version of WireMailSmtp you're using? I am on the same PW version but I am currently struggeling with the HTML signature. 

 

Using this code, triplechecked that at HTML signature is stored in the WireMailSmtp settings, but - and thats the fun fact - it does not work within a HTML mail - but the signature is added to the plaintext. 

		$mail = wireMail();
		$mail->from($email, $name);
		$mail->to("me@me.com", "Me");
		$mail->subject('new message - '.$config->httpHost);
		//$mail->addSignature(true); ==> has no effect either since I chose "send signature with _every_ message" in the module settings
		$mail->bodyHTML($message);
		$mail->send();

 

Has this happened to anyone before? And if so: how did you solve this?

Share this post


Link to post
Share on other sites

@chrizz can you confirm that your html-message doesn't contain a body endtag?

</body>

If this is the case, you can update the module to the new version 0.2.5, where this is fixed.

Share this post


Link to post
Share on other sites

@horst it doesn't have any tags (except the tags I am adding to the message manually).

I tried a downgrade to 0.2.3 => no success - same problems

I just installed version 0.2.5 => still no tags but the signature is there... 

this is what the mail content looks like (headers are removed)

--3e089748ac63f63eedf33dc907a71870
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

hallo

--
PLAIN blablabla
--3e089748ac63f63eedf33dc907a71870
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<strong>hallo</strong>

HTML <br><br><strong>blablabla</strong>
--3e089748ac63f63eedf33dc907a71870--

so it seems as if my problem has been solved - but it's still somehow weird that there are not tags... If you want me to share more details and/or sources please let me know. Would be glad if I can help you :) 

Thanks for providing this module & the support!

 

 

Share this post


Link to post
Share on other sites

@chrizz my question was, if you used <head></head><body></body> tags in your HTML-message.

Now I know, you don't. :)

That was the reason why the Signature wasn't attached to the HTML-message-part.
https://github.com/horst-n/WireMailSmtp/blob/532dd94752597a4b2b9f3a2c02ef48b21db77f84/WireMailSmtpAdaptor.php#L280-L285

With the modules update to version 0.2.5, the html-signature get added in both cases.

  • Like 2

Share this post


Link to post
Share on other sites

hehe... fair enough to check for a closing tag ;) 

Next time I'll promise I'll use correct markup which would have solved the problem right away. Thanks for your support :)

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi,

WireMailSMTP was working fine, but somehow it stops, now all I get it this:

ERROR: SMTP settings did not work.
could not start TLS connection encryption protocol

tried with google and yandex, same error....

 

Regards,

Share this post


Link to post
Share on other sites

I am experiencing problems when sending through Gmail on a site that is sending out quite a lot of emails to different recipients.

It used to work for about a month and now suddenly Google is blocking my app. It seems that Google regards the app as less secure.

I am wondering if someone has had similar issues with Gmail?

I know there is a setting in Gmail to allow less secure apps. But I would like to know why Google thinks the app is less secure.

Does it have something to do with headers being sent by WireMail that Google disqualifies as insecure? 

Here is the data array from the WireMailSmtp object (sensitive data has been replaced by xxx):
 

default_charset => "UTF-8" (5)
localhost => "dev.xxxtors.com" (31)
smtp_host => "smtp.gmail.com" (14)
smtp_port => 587
smtp_ssl => ""
smtp_start_tls => 1
smtp_user => "info@xxxtors.com" (32)
smtp_password => "xxx" (11)
smtp_password2 => ""
clear_smtp_password => ""
realm => ""
workstation => ""
authentication_mechanism => ""
smtp_debug => 0
smtp_html_debug => 0
sender_name => "xxx" (24)
sender_email => "info@xxxtors.com" (32) 
sender_reply => ""
sender_errors_to => ""
sender_signature => ""
sender_signature_html => ""
send_sender_signature => "1"
extra_headers => ""
valid_recipients => ""
smtp_certificate => ""

And here the mail object data

to => array (2)
"xxx@gmail.com" => "xxx@gmail.com" (26)
"xxx@mailbox.org" => "xxx@mailbox.org" (28)
toName => array (2)
"xxx@gmail.com" => ""
"xxx@mailbox.org" => ""
cc => array ()
ccName => array ()
bcc => array ()
from => "info@xxxtors.com" (32)
fromName => "xxx" (24)
priority => ""
dispositionNotification => ""
subject => "xxx" (51)
body => "This is an automatically created email. Please do not reply.

xxx" (139)
bodyHTML => "xxx" (183)
addSignature => NULL
attachments => array ()
header => array (1)
"X-Mailer" => "ProcessWire/WireMailSmtp" (24)
sendSingle => FALSE
sendBulk => FALSE
useSentLog => FALSE
wrapText => FALSE

Does anyone have an idea why Gmail thinks these mails are less secure?

Share this post


Link to post
Share on other sites

No, I don't know. But I see, that you have not set the sendBulk param to true.  For automatic messages, you should set it to true, even if you send single emails. 

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, gebeer said:

Does anyone have an idea why Gmail thinks these mails are less secure?

Its because you are storing/sending a Google Account password on your own instead of using a "secure" flow like OAuth2 apps. E.g. using less secure apps is not possible with a 2FA account.

https://support.google.com/accounts/answer/6010255?hl=en

 

Quote

Google may block sign-in attempts from some apps or devices that do not use modern security standards. Since these apps and devices are easier to break into, blocking them helps keep your account safe.

 

  • Like 3

Share this post


Link to post
Share on other sites

@flydev That info is enlightening. Thank you!

So I would have to extend the WireMailSmtp module to get that functionality, right? @horst

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By BitPoet
      So I stumbled over the request to allow limiting templates to be used only once under every parent page in this thread
      and found that this would actually come in handy (also in a site I've built).
      The code can be found on github and soon in the module repo.
      After installation, you'll find a new checkbox "Only once per parent" in the family tab when editing a template.

    • By Robin S
      Password Generator
      Adds a password generator to InputfieldPassword.

       
      Usage
      Install the Password Generator module.
      Now any InputfieldPassword has a password generation feature. The settings for the generator are taken automatically from the settings* of the password field.
      *Settings not supported by the generator:
      Complexify: but generated passwords should still satisfy complexify settings in the recommended range. Banned words: but the generated passwords are random strings so actual words are unlikely to occur.  
      https://modules.processwire.com/modules/password-generator/
      https://github.com/Toutouwai/PasswordGenerator
    • By Robin S
      If you've ever needed to insert links to a large number of files within CKEditor you may have found that the standard PW link modal is a somewhat slow way to do it.
      This module provides a quicker way to insert links to files on the page being edited. You can insert a link to an individual file, or insert an unordered list of links to all files on the page with a single click.
      CKEditor Link Files
      Adds a menu to CKEditor to allow the quick insertion of links to files on the page being edited.

      Features
      Hover a menu item to see the "Description" of the corresponding file (if present). Click a menu item to insert a link to the corresponding file at the current cursor position. The filename is used as the link text. If you Alt-click a menu item the file description is used as the link text (with fallback to filename if no description entered). If text is currently selected in the editor then the selected text is used as the link text. Click "* Insert links to all files *" to insert an unordered list of links to all files on the page. Also works with the Alt-click option. Menu is built via AJAX so newly uploaded files are included in the menu without the page needing to be saved. However, descriptions are not available for newly uploaded files until the page is saved. Installation
      Install the CKEditor Link Files module.
      For any CKEditor field where you want the "Insert link to file" dropdown menu to appear in the CKEditor toolbar, visit the field settings and add "LinkFilesMenu" to the "CKEditor Toolbar" settings field.
       
      http://modules.processwire.com/modules/cke-link-files/
      https://github.com/Toutouwai/CkeLinkFiles
    • By matjazp
      A module for managing files and folders. Supports creating, opening (e.g. viewing, playing, editing), renaming, moving, copying, deleting and searching for files. You can also view and change (not supported on Windows) file and directory permissions. 
      https://github.com/matjazpotocnik/ProcessFileManager

      The author of FileManager component is (c) 2006 - 2018 Gerd Tentler, http://www.gerd-tentler.de/tools/filemanager/. I modified it to work with ProcessWire as a module. Please see license files on usage in commercial projects!
    • By Robin S
      An inputfield for displaying markup editable via CKEditor.
      The module is intended for use with the Form Builder module. Allows blocks of static text to be included within a form, which can be edited in the form settings using CKEditor.
      Usage
      Install the Markup CKEditor module.
      In the Form Builder module settings, add "MarkupCKEditor" to "Inputfield types to use with FormBuilder".
      In your form settings, add a new field of type "Markup CKEditor". Enter the text you want to show in this field using "Markup Text" on the "Details" tab.
      Screenshots


       
      http://modules.processwire.com/modules/inputfield-markup-ckeditor/
      https://github.com/Toutouwai/InputfieldMarkupCKEditor