Jump to content
horst

WireMailSmtp

Recommended Posts

You are the man! ^-^

Tomaten auf den Augen! Is there an english expression for it?

 

Share this post


Link to post
Share on other sites

Is there a property to set a "Return-Path:" which differentiates from the "From:" setting? At a first glance, I have found a method call

$this->emailMessage->SetHeader('Return-Path', $address);

inside WireMailSmtpAdaptor.php - I guess this can't be overridden individually?

Share this post


Link to post
Share on other sites

You can set a reply-to emailaddress in the config screen. If this isn't what you are after, there is a possibility to add individual headers. 

I'm on mobile now, thus not able to do a search. Can have a closer look later. 

Share this post


Link to post
Share on other sites

I moved my site over to a new host and am starting to see errors on my contact form which uses FormBuilder and routes via WireMailSMTP

When I submit a form, I receieve the following

Quote

Unable to verify successful email delivery of this form submission.

I wondered if this were a WireMailSMTP issues and tried the Test Settings checkbox

Quote

535 Incorrect authentication data

The thing is, my PostMark App authentication credentials haven't changed in the move.

Just to be sure, I have pasted them in place again with the same result. 

I then tried to create new Server API tokens, hooked these up and had the same error.

I don't believe this is an issue with PostMarkApp (just a hunch) and wondering if anyone had any ideas?

Wondered if it might be an issue with the new host stopping somewhow outgoing connections to PostMarkApp etc?

 

Share this post


Link to post
Share on other sites
35 minutes ago, Peter Knight said:

I moved my site over to a new host and am starting to see errors on my contact form which uses FormBuilder and routes via WireMailSMTP

When I submit a form, I receieve the following

I wondered if this were a WireMailSMTP issues and tried the Test Settings checkbox

The thing is, my PostMark App authentication credentials haven't changed in the move.

Just to be sure, I have pasted them in place again with the same result. 

I then tried to create new Server API tokens, hooked these up and had the same error.

I don't believe this is an issue with PostMarkApp (just a hunch) and wondering if anyone had any ideas?

Wondered if it might be an issue with the new host stopping somewhow outgoing connections to PostMarkApp etc?

 

The key thing is that you changed hosts and now are having issues getting mail to work properly.  You need to read up and review how mail is processed at your new hosting company.  After finding out how mail works at the new host, you may have to make a few changes to your WireMailSMTP configuration screen to get things working.  

Additionally, your new hosting company should be able to verify that needed ports are opened (not blocked) for your account.  Good luck.

  • Like 3

Share this post


Link to post
Share on other sites
43 minutes ago, cstevensjr said:

The key thing is that you changed hosts and now are having issues getting mail to work properly. 

Solved it. I had just assumed that allowing SMTP processing by 3rd parties was a basic feature of mosts hosts.

Unfortunately my new host (A2 Hosting) actually don't allow this unless you're on a high level plan. :-/

Share this post


Link to post
Share on other sites

I am using WireMailSmtp for a project. Interestingly everything worked fine while I used it from localhost but as soon as I deployed to webspace and tried using it from the domain it threw me following error:  "Call to undefined function wire()"

As I was searching for a solution I came to this page :

Now I changed every wire() call to ProcessWire\wire() and it worked. Maybe that should be included in a following update?

If I am wrong please enlighten me. And if that is the case you might as well explain to me what the problem was ^-^

 

Share this post


Link to post
Share on other sites
On 1/31/2018 at 11:06 AM, flydev said:

I just tested with an Office365 account with these settings, it works well. WireMailSMTP 0.3.0 here.

Look like its your credentials that are incorrect ?  Double check ;)

 

smtp.thumb.png.19fcd8a84f8e76a1e96e78304f38dbf6.png

Thanks @flydev, credentials were alright, but turned out it was the host that was the problem, site is running on A2. So it's the same problem @Peter Knight ran into.

Share this post


Link to post
Share on other sites
1 hour ago, nikoka said:

Thanks @flydev, credentials were alright, but turned out it was the host that was the problem, site is running on A2. So it's the same problem @Peter Knight ran into.

Hi @nikoka

If you're running A2 Hosting on a Lite, Swift or Turbo plan OR Reseller plan then external SMTP servers won't work.

Here's the full support page

I had just started using A2 for my hosting and was about to migrate about 10 sites from a VPS. Really glad I discovered this early when I had just moved the first site.

FYI I moved to Hostinger. I've had a few setup issues but they do allow external SMTP processing. 

 

Share this post


Link to post
Share on other sites

Does anybody get it working with Gmail SMTP? 

I always get

could not connect to the host "smtp.gmail.com": Connection refused 

I have tried all possible combinations of settings and ports and double check my credentials. The same thing on localhost and remote hosts. 

Is it something with Gmail? 

--------------------

Get it working on the remote host, ports were closed.

But what can be wrong with the local setup? 

Share this post


Link to post
Share on other sites

@Zeka you need to go to Gmail settings and allow access for less secure apps there. Then it should work. 

  • Like 2

Share this post


Link to post
Share on other sites

I'm getting the following error when trying to add an attachment and not quite sure why:

Exception: Method WireMailSmtp::attachment  does not exist or is not callable in this context.

Is there any reason for this that anyone knows of?

Share this post


Link to post
Share on other sites

@ethanbeyer  here you go:

Should I be doing $mail = $modules->get('WireMailSmtp') or something?

$mail = wireMail();
$mail->to($name);
$mail->from = 'example@example.com';
$mail->subject("Subject Here");
$mail->body("Hello bla bla bla");
$mail->attachment($filepath);

$numSent = $mail->send();

 

Share this post


Link to post
Share on other sites

@ethanbeyer Got it sorted. Thank you for pointing that out. 

I got an instance of the module and then used $mail->attachments(array($filepath => $filename));

And that worked!

  • Like 1

Share this post


Link to post
Share on other sites

Hello, Ive but using the module for a few month now (its great thanks!)

Over the last couple of weeks I have been experiencing problems. Iam using a office 365 exchange account, which just randomly stops sending. If I run the test is setting it fails. After that if I deselect TLS save a then retick TLS save and test it works again. Any ideas what may be causing this?

Share this post


Link to post
Share on other sites

@Jon this sounds a little strange. Reading most of your comment, I would think that this might have something to do with your Office365 having sending limits that you're going over. The TLS issue is what makes it weird, though - because if it was a limits problem, that would not be happening.

Is there anything in the logs that gives what error is encountered, rather than saying it just stops sending?

  • Like 2

Share this post


Link to post
Share on other sites
On 5/29/2018 at 2:57 PM, ethanbeyer said:

@Jon this sounds a little strange. Reading most of your comment, I would think that this might have something to do with your Office365 having sending limits that you're going over. The TLS issue is what makes it weird, though - because if it was a limits problem, that would not be happening.

Is there anything in the logs that gives what error is encountered, rather than saying it just stops sending?

Hello Ethan,

Nothing in the logs I've now setup sendinblue and this has resolved the issues so I assumes its 365 like you suggested. The limit would be odd though as its not sending out that many emails

Cheers

Jon

Share this post


Link to post
Share on other sites

Solution to problem found on another forum post but cannot see how to delete this post.


 

Quote

 

 

Edited by MrKing
Problem solved

Share this post


Link to post
Share on other sites

We are getting the "WireMailSmtpConfig: ERROR: SMTP settings did not work" error with these settings (real address replaced with ***). 

Local hostname: www.***.com
SMTP Hostname: ***.mail.protection.outlook.com
SMTP Port: 25
SMTP User: (required to be left empty)
SMTP Password: (required to be left empty)
Use START-TLS: Yes

Authentication is made using something called O365 (assuming it means Office 365). Could this be the reason nothing works? Does WireMail: SMTP even work with user and password left empty?

What does the Authentication Mechanism stand for? An IP address?

In the front end when trying to submit from by Formbuilder I get "Notice: Undefined index: replyToName in ***.com/httpdocs/wire/core/WireMail.php on line 319

Share this post


Link to post
Share on other sites

For an outlook.com email address, I use this successfully. Do these work for you?

image.thumb.png.73792917c007265ce8e7615086f2bc77.png

Share this post


Link to post
Share on other sites

@adrian Unfortunately no. Tech support from the hosting company was also quite sure that the information we've entered is correct.

Share this post


Link to post
Share on other sites

Does anyone know if using SMTP user without a password is a problem? Authentication is taken care of by something else in this case.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Robin S
      Repeater Images
      Adds options to modify Repeater fields to make them convenient for "page-per-image" usage. Using a page-per-image approach allows for additional fields to be associated with each image, to record things such as photographer, date, license, links, etc.
      When Repeater Images is enabled for a Repeater field the module changes the appearance of the Repeater inputfield to be similar (but not identical) to an Images field. The collapsed view shows a thumbnail for each Repeater item, and items can be expanded for field editing.
      Screencast

      Installation
      Install the Repeater Images module.
      Setup
      Create an image field to use in the Repeater field. Recommended settings for the image field are "Maximum files allowed" set to 1 and "Formatted value" set to "Single item (null if empty)". Create a Repeater field. Add the image field to the Repeater. If you want additional fields in the Repeater create and add these also. Repeater Images configuration
      Tick the "Activate Repeater Images for this Repeater field" checkbox. In the "Image field within Repeater" dropdown select the single image field. You must save the Repeater field settings to see any newly added Image fields in the dropdown. Adjust the image thumbnail height if you want (unlike the core Images field there is no slider to change thumbnail height within Page Edit). Note: the depth option for Repeater fields is not compatible with the Repeater Images module.
      Image uploads feature
      There is a checkbox to activate image uploads. This feature allows users to quickly and easily add images to the Repeater Images field by uploading them to an adjacent "upload" field.
      To use this feature you must add the image field selected in the Repeater Images config to the template of the page containing the Repeater Images field - immediately above or below the Repeater Images field would be a good position.
      It's recommended to set the label for this field in template context to "Upload images" or similar, and set the visibility of the field to "Closed" so that it takes up less room when it's not being used. Note that when you drag images to a closed Images field it will automatically open. You don't need to worry about the "Maximum files allowed" setting because the Repeater Images module overrides this for the upload field.
      New Repeater items will be created from the images uploaded to the upload field when the page is saved. The user can add descriptions and tags to the images while they are still in the upload field and these will be retained in the Repeater items. Images are automatically deleted from the upload field when the page is saved.
      Tips
      The "Use accordion mode?" option in the Repeater field settings is useful for keeping the inputfield compact, with only one image item open for editing at a time. The "Repeater item labels" setting determines what is shown in the thumbnail overlay on hover. Example for an image field named "image": {image.basename} ({image.width}x{image.height})  
      https://github.com/Toutouwai/RepeaterImages
      https://modules.processwire.com/modules/repeater-images/
    • By EyeDentify
      Hello There Guys.

      I am in the process of getting into making my first modules for PW and i had a question for you PHP and PW gurus in here.

      I was wondering how i could use an external library, lets say TwitterOAuth in my PW module.
      Link to library
      https://twitteroauth.com/

      Would the code below be correct or how would i go about this:
      <?PHP namespace ProcessWire; /* load the TwitterOAuth library from my Module folder */ require "twitteroauth/autoload.php"; use Abraham\TwitterOAuth\TwitterOAuth; class EyeTwitter extends WireData,TwitterOAuth implements Module { /* vars */ protected $twConnection; /* extend parent TwitterOAuth contructor $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret); */ public function myTwitterConnection ($consumer_key, $consumer_secret, $access_token, $access_token_secret) { /* save the connection for use later */ $this->twConnection = TwitterOAuth::__construct($consumer_key, $consumer_secret, $access_token, $access_token_secret); } } ?> Am i on the right trail here or i am barking up the wrong tree?
      I don´t need a complete solution, i just wonder if i am including the external library the right way.
      If not, then give me a few hint´s and i will figure it out.

      Thanks a bunch.

      /EyeDentify
    • By dimitrios
      Hello,
      this module can publish content of a Processwire page on a Facebook page, triggered by saving the Processwire page.
      To set it up, configure the module with a Facebook app ID, secret and a Page ID. Following is additional configuration on Facebook for developers:
      Minimum Required Facebook App configuration:
      on Settings -> Basics, provide the App Domains, provide the Site URL, on Settings -> Advanced, set the API version (has been tested up to v3.3), add Product: Facebook Login, on Facebook Login -> Settings, set Client OAuth Login: Yes, set Web OAuth Login: Yes, set Enforce HTTPS: Yes, add "http://www.example.com/processwire/page/" to field Valid OAuth Redirect URIs. This module is configurable as follows:
      Templates: posts can take place only for pages with the defined templates. On/Off switch: specify a checkbox field that will not allow the post if checked. Specify a message and/or an image for the post.
      Usage
      edit the desired PW page and save; it will post right after the initial Facebook log in and permission granting. After that, an access token is kept.
       
      Download
      PW module directory: http://modules.processwire.com/modules/auto-fb-post/ Github: https://github.com/kastrind/AutoFbPost   Note: Facebook SDK for PHP is utilized.


    • By kongondo
      FieldtypeRuntimeMarkup and InputfieldRuntimeMarkup
       
      Modules Directory: http://modules.processwire.com/modules/fieldtype-runtime-markup/
      GitHub: https://github.com/kongondo/FieldtypeRuntimeMarkup
      As of 11 May 2019 ProcessWire versions earlier than 3.x are not supported
      This module allows for custom markup to be dynamically (PHP) generated and output within a page's edit screen (in Admin).
       
      The value for the fieldtype is generated at runtime. No data is saved in the database. The accompanying InputfieldRuntimeMarkup is only used to render/display the markup in the page edit screen.
       
      The field's value is accessible from the ProcessWire API in the frontend like any other field, i.e. it has access to $page and $pages.
       
      The module was commissioned/sponsored by @Valan. Although there's certainly other ways to achieve what this module does, it offers a dynamic and flexible alternative to generating your own markup in a page's edit screen whilst also allowing access to that markup in the frontend. Thanks Valan!
       
      Warning/Consideration
      Although access to ProcessWire's Fields' admin pages is only available to Superusers, this Fieldtype will evaluate and run the custom PHP Code entered and saved in the field's settings (Details tab). Utmost care should therefore be taken in making sure your code does not perform any CRUD operations!! (unless of course that's intentional) The value for this fieldtype is generated at runtime and thus no data is stored in the database. This means that you cannot directly query a RuntimeMarkup field from $pages->find(). Usage and API
       
      Backend
      Enter your custom PHP snippet in the Details tab of your field (it is RECOMMENDED though that you use wireRenderFile() instead. See example below). Your code can be as simple or as complicated as you want as long as in the end you return a value that is not an array or an object or anything other than a string/integer.
       
      FieldtypeRuntimeMarkup has access to $page (the current page being edited/viewed) and $pages. 
       
      A very simple example.
      return 'Hello'; Simple example.
      return $page->title; Simple example with markup.
      return '<h2>' . $page->title . '</h2>'; Another simple example with markup.
      $out = '<h1>hello '; $out .= $page->title; $out .= '</h1>'; return $out; A more advanced example.
      $p = $pages->get('/about-us/')->child('sort=random'); return '<p>' . $p->title . '</p>'; An even more complex example.
      $str =''; if($page->name == 'about-us') { $p = $page->children->last(); $str = "<h2><a href='{$p->url}'>{$p->title}</a></h2>"; } else { $str = "<h2><a href='{$page->url}'>{$page->title}</a></h2>"; } return $str; Rather than type your code directly in the Details tab of the field, it is highly recommended that you placed all your code in an external file and call that file using the core wireRenderFile() method. Taking this approach means you will be able to edit your code in your favourite text editor. It also means you will be able to type more text without having to scroll. Editing the file is also easier than editing the field. To use this approach, simply do:
      return wireRenderFile('name-of-file');// file will be in /site/templates/ If using ProcessWire 3.x, you will need to use namespace as follows:
      return ProcessWire\wireRenderFile('name-of-file'); How to access the value of RuntimeMarkup in the frontend (our field is called 'runtime_markup')
       
      Access the field on the current page (just like any other field)
      echo $page->runtime_markup; Access the field on another page
      echo $pages->get('/about-us/')->runtime_markup; Screenshots
       
      Backend
       

       

       
      Frontend
       

×
×
  • Create New...