Sunday, September 14, 2014

0 Comments
Posted in Arrangement, Art, Business

Main Caching Principles

A Web cache sits between one or more Web servers (also known as origin servers) and a client or many clients, and watches requests come by, saving copies of the responses — like HTML pages, images and files (collectively known asrepresentations) — for itself. Then, if there is another request for the same URL, it can use the response that it has, instead of asking the origin server for it again.

There are two main reasons that Web caches are used:

  • To reduce latency — Because the request is satisfied from the cache (which is closer to the client) instead of the origin server, it takes less time for it to get the representation and display it. This makes the Web seem more responsive.
  • To reduce network traffic — Because representations are reused, it reduces the amount of bandwidth used by a client. This saves money if the client is paying for traffic, and keeps their bandwidth requirements lower and more manageable.

Kinds of Web Caches

Browser Caches

If you examine the preferences dialog of any modern Web browser (like Internet Explorer, Safari or Mozilla), you’ll probably notice a “cache” setting. This lets you set aside a section of your computer’s hard disk to store representations that you’ve seen, just for you. The browser cache works according to fairly simple rules. It will check to make sure that the representations are fresh, usually once a session (that is, the once in the current invocation of the browser).
This cache is especially useful when users hit the “back” button or click a link to see a page they’ve just looked at. Also, if you use the same navigation images throughout your site, they’ll be served from browsers’ caches almost instantaneously.

Gateway Caches

Also known as “reverse proxy caches” or “surrogate caches,” gateway caches are also intermediaries, but instead of being deployed by network administrators to save bandwidth, they’re typically deployed by Webmasters themselves, to make their sites more scalable, reliable and better performing.
Requests can be routed to gateway caches by a number of methods, but typically some form of load balancer is used to make one or more of them look like the origin server to clients.
Content delivery networks (CDNs) distribute gateway caches throughout the Internet (or a part of it) and sell caching to interested Web sites. Speedera and Akamai are examples of CDNs.
This tutorial focuses mostly on browser and proxy caches, although some of the information is suitable for those interested in gateway caches as well.


Aren’t Web Caches bad for me? Why should I help them?


Web caching is one of the most misunderstood technologies on the Internet. Webmasters in particular fear losing control of their site, because a proxy cache can “hide” their users from them, making it difficult to see who’s using the site.
Unfortunately for them, even if Web caches didn’t exist, there are too many variables on the Internet to assure that they’ll be able to get an accurate picture of how users see their site. If this is a big concern for you, this tutorial will teach you how to get the statistics you need without making your site cache-unfriendly.
Another concern is that caches can serve content that is out of date, or stale. However, this tutorial can show you how to configure your server to control how your content is cached.
CDNs are an interesting development, because unlike many proxy caches, their gateway caches are aligned with the interests of the Web site being cached, so that these problems aren’t seen. However, even when you use a CDN, you still have to consider that there will be proxy and browser caches downstream.
On the other hand, if you plan your site well, caches can help your Web site load faster, and save load on your server and Internet link. The difference can be dramatic; a site that is difficult to cache may take several seconds to load, while one that takes advantage of caching can seem instantaneous in comparison. Users will appreciate a fast-loading site, and will visit more often.
Think of it this way; many large Internet companies are spending millions of dollars setting up farms of servers around the world to replicate their content, in order to make it as fast to access as possible for their users. Caches do the same for you, and they’re even closer to the end user. Best of all, you don’t have to pay for them.
The fact is that proxy and browser caches will be used whether you like it or not. If you don’t configure your site to be cached correctly, it will be cached using whatever defaults the cache’s administrator decides upon.


How Web Caches Work


All caches have a set of rules that they use to determine when to serve a representation from the cache, if it’s available. Some of these rules are set in the protocols (HTTP 1.0 and 1.1), and some are set by the administrator of the cache (either the user of the browser cache, or the proxy administrator).
Generally speaking, these are the most common rules that are followed (don’t worry if you don’t understand the details, it will be explained below):
  1. If the response’s headers tell the cache not to keep it, it won’t.
  2. If the request is authenticated or secure (i.e., HTTPS), it won’t be cached.
  3. A cached representation is considered fresh (that is, able to be sent to a client without checking with the origin server) if:
    • It has an expiry time or other age-controlling header set, and is still within the fresh period, or
    • If the cache has seen the representation recently, and it was modified relatively long ago.
    Fresh representations are served directly from the cache, without checking with the origin server.
  4. If a representation is stale, the origin server will be asked to validate it, or tell the cache whether the copy that it has is still good.
  5. Under certain circumstances — for example, when it’s disconnected from a network — a cache can serve stale responses without checking with the origin server.
If no validator (an ETag or Last-Modified header) is present on a response, and it doesn't have any explicit freshness information, it will usually — but not always — be considered uncacheable.
Together, freshness and validation are the most important ways that a cache works with content. A fresh representation will be available instantly from the cache, while a validated representation will avoid sending the entire representation over again if it hasn’t changed.


How (and how not) to Control Caches


There are several tools that Web designers and Webmasters can use to fine-tune how caches will treat their sites. It may require getting your hands a little dirty with your server’s configuration, but the results are worth it. For details on how to use these tools with your server, see the Implementation sections below.

HTML Meta Tags and HTTP Headers

HTML authors can put tags in a document’s <HEAD> section that describe its attributes. These meta tags are often used in the belief that they can mark a document as uncacheable, or expire it at a certain time.
Meta tags are easy to use, but aren’t very effective. That’s because they’re only honored by a few browser caches, not proxy caches (which almost never read the HTML in the document). While it may be tempting to put a Pragma: no-cache meta tag into a Web page, it won’t necessarily cause it to be kept fresh.
If your site is hosted at an ISP or hosting farm and they don’t give you the ability to set arbitrary HTTP headers (likeExpires and Cache-Control), complain loudly; these are tools necessary for doing your job.
On the other hand, true HTTP headers give you a lot of control over how both browser caches and proxies handle your representations. They can’t be seen in the HTML, and are usually automatically generated by the Web server. However, you can control them to some degree, depending on the server you use. In the following sections, you’ll see what HTTP headers are interesting, and how to apply them to your site.
HTTP headers are sent by the server before the HTML, and only seen by the browser and any intermediate caches. Typical HTTP 1.1 response headers might look like this:
HTTP/1.1 200 OK
Date: Fri, 30 Oct 1998 13:19:41 GMT
Server: Apache/1.3.3 (Unix)
Cache-Control: max-age=3600, must-revalidate
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT
ETag: "3e86-410-3596fbbc"
Content-Length: 1040
Content-Type: text/html
The HTML would follow these headers, separated by a blank line. See the Implementation sections for information about how to set HTTP headers.


Pragma HTTP Headers (and why they don’t work)


Many people believe that assigning a Pragma: no-cache HTTP header to a representation will make it uncacheable. This is not necessarily true; the HTTP specification does not set any guidelines for Pragma response headers; instead, Pragma request headers (the headers that a browser sends to a server) are discussed. Although a few caches may honor this header, the majority won’t, and it won’t have any effect. Use the headers below instead.


Controlling Freshness with the Expires HTTP Header


The Expires HTTP header is a basic means of controlling caches; it tells all caches how long the associated representation is fresh for. After that time, caches will always check back with the origin server to see if a document is changed. Expires headers are supported by practically every cache.
Most Web servers allow you to set Expires response headers in a number of ways. Commonly, they will allow setting an absolute time to expire, a time based on the last time that the client retrieved the representation (last access time), or a time based on the last time the document changed on your server (last modification time).
Expires headers are especially good for making static images (like navigation bars and buttons) cacheable. Because they don’t change much, you can set extremely long expiry time on them, making your site appear much more responsive to your users. They’re also useful for controlling caching of a page that is regularly changed. For instance, if you update a news page once a day at 6am, you can set the representation to expire at that time, so caches will know when to get a fresh copy, without users having to hit ‘reload’.
The only value valid in an Expires header is a HTTP date; anything else will most likely be interpreted as ‘in the past’, so that the representation is uncacheable. Also, remember that the time in a HTTP date is Greenwich Mean Time (GMT), not local time.
For example:
Expires: Fri, 30 Oct 1998 14:19:41 GMT
It’s important to make sure that your Web server’s clock is accurate if you use the Expiresheader. One way to do this is using the Network Time Protocol (NTP); talk to your local system administrator to find out more.
Although the Expires header is useful, it has some limitations. First, because there’s a date involved, the clocks on the Web server and the cache must be synchronised; if they have a different idea of the time, the intended results won’t be achieved, and caches might wrongly consider stale content as fresh.
Another problem with Expires is that it’s easy to forget that you’ve set some content to expire at a particular time. If you don’t update an Expires time before it passes, each and every request will go back to your Web server, increasing load and latency.

Cache-Control HTTP Headers


HTTP 1.1 introduced a new class of headers, Cache-Control response headers, to give Web publishers more control over their content, and to address the limitations of Expires.

Useful Cache-Control response headers include:

  • max-age=[seconds] — specifies the maximum amount of time that a representation will be considered fresh. Similar toExpires, this directive is relative to the time of the request, rather than absolute. [seconds] is the number of seconds from the time of the request you wish the representation to be fresh for.
  • s-maxage=[seconds] — similar to max-age, except that it only applies to shared (e.g., proxy) caches.
  • public — marks authenticated responses as cacheable; normally, if HTTP authentication is required, responses are automatically private.
  • private — allows caches that are specific to one user (e.g., in a browser) to store the response; shared caches (e.g., in a proxy) may not.
  • no-cache — forces caches to submit the request to the origin server for validation before releasing a cached copy, every time. This is useful to assure that authentication is respected (in combination with public), or to maintain rigid freshness, without sacrificing all of the benefits of caching.
  • no-store — instructs caches not to keep a copy of the representation under any conditions.
  • must-revalidate — tells caches that they must obey any freshness information you give them about a representation. HTTP allows caches to serve stale representations under special conditions; by specifying this header, you’re telling the cache that you want it to strictly follow your rules.
  • proxy-revalidate — similar to must-revalidate, except that it only applies to proxy caches.
For example:
Cache-Control: max-age=3600, must-revalidate
When both Cache-Control and Expires are present, Cache-Control takes precedence. If you plan to use the Cache-Control headers, you should have a look at the excellent documentation in HTTP 1.1; see References and Further Information.

Validators and Validation

In How Web Caches Work, we said that validation is used by servers and caches to communicate when a representation has changed. By using it, caches avoid having to download the entire representation when they already have a copy locally, but they’re not sure if it’s still fresh.
Validators are very important; if one isn’t present, and there isn’t any freshness information (Expires or Cache-Control) available, caches will not store a representation at all.
The most common validator is the time that the document last changed, as communicated in Last-Modified header. When a cache has a representation stored that includes a Last-Modified header, it can use it to ask the server if the representation has changed since the last time it was seen, with an If-Modified-Since request.
HTTP 1.1 introduced a new kind of validator called the ETag. ETags are unique identifiers that are generated by the server and changed every time the representation does. Because the server controls how the ETag is generated, caches can be sure that if the ETag matches when they make a If-None-Match request, the representation really is the same.
Almost all caches use Last-Modified times as validators; ETag validation is also becoming prevalent.
Most modern Web servers will generate both ETag and Last-Modified headers to use as validators for static content (i.e., files) automatically; you won’t have to do anything. However, they don’t know enough about dynamic content (like CGI, ASP or database sites) to generate them; see Writing Cache-Aware Scripts.


Tips for Building a Cache-Aware Site


Besides using freshness information and validation, there are a number of other things you can do to make your site more cache-friendly.
  • Use URLs consistently — this is the golden rule of caching. If you serve the same content on different pages, to different users, or from different sites, it should use the same URL. This is the easiest and most effective way to make your site cache-friendly. For example, if you use “/index.html” in your HTML as a reference once, always use it that way.
  • Use a common library of images and other elements and refer back to them from different places.
  • Make caches store images and pages that don’t change often by using a Cache-Control: max-age header with a large value.
  • Make caches recognise regularly updated pages by specifying an appropriate max-age or expiration time.
  • If a resource (especially a downloadable file) changes, change its name. That way, you can make it expire far in the future, and still guarantee that the correct version is served; the page that links to it is the only one that will need a short expiry time.
  • Don’t change files unnecessarily. If you do, everything will have a falsely young Last-Modified date. For instance, when updating your site, don’t copy over the entire site; just move the files that you’ve changed.
  • Use cookies only where necessary — cookies are difficult to cache, and aren’t needed in most situations. If you must use a cookie, limit its use to dynamic pages.
  • Minimize use of SSL — because encrypted pages are not stored by shared caches, use them only when you have to, and use images on SSL pages sparingly.
  • Check your pages with REDbot — it can help you apply many of the concepts in this tutorial.


Writing Cache-Aware Scripts


By default, most scripts won’t return a validator (a Last-Modified or ETag response header) or freshness information (Expires or Cache-Control). While some scripts really are dynamic (meaning that they return a different response for every request), many (like search engines and database-driven sites) can benefit from being cache-friendly.
Generally speaking, if a script produces output that is reproducible with the same request at a later time (whether it be minutes or days later), it should be cacheable. If the content of the script changes only depending on what’s in the URL, it is cacheable; if the output depends on a cookie, authentication information or other external criteria, it probably isn’t.

  • The best way to make a script cache-friendly (as well as perform better) is to dump its content to a plain file whenever it changes. The Web server can then treat it like any other Web page, generating and using validators, which makes your life easier. Remember to only write files that have changed, so the Last-Modified times are preserved.
  • Another way to make a script cacheable in a limited fashion is to set an age-related header for as far in the future as practical. Although this can be done with Expires, it’s probably easiest to do so with Cache-Control: max-age, which will make the request fresh for an amount of time after the request.
  • If you can’t do that, you’ll need to make the script generate a validator, and then respond to If-Modified-Sinceand/or If-None-Match requests. This can be done by parsing the HTTP headers, and then responding with 304 Not Modified when appropriate. Unfortunately, this is not a trival task.
Some other tips;

  • Don’t use POST unless it’s appropriate. Responses to the POST method aren’t kept by most caches; if you send information in the path or query (via GET), caches can store that information for the future.
  • Don’t embed user-specific information in the URL unless the content generated is completely unique to that user.
  • Don’t count on all requests from a user coming from the same host, because caches often work together.
  • Generate Content-Length response headers. It’s easy to do, and it will allow the response of your script to be used in apersistent connection. This allows clients to request multiple representations on one TCP/IP connection, instead of setting up a connection for every request. It makes your site seem much faster.

Monday, September 8, 2014

0 Comments
Posted in Arrangement, Art, Business

Contact Form 7 Email Issues

Though the Contact Form 7 (CF7) plugin successfully sends millions of emails every day, there are a host of issues that can delay or stop emails on both the sending and receiving ends of a typical email.
This article was set up to help people, who are having trouble sending and receiving emails from CF7, solve their problems.
Contact Form 7 successfully sends millions of emails every day

Emails from CF7 work flawlessly, without any effort, for most people

We ourselves have never had a problem sending or receiving emails from Contact Form 7. Its always worked flawlessly, on a large number of websites, on a few different servers, with no need for any changes to the default setups. It just works and always has.
We believe most users of CF7 have the same experience. CF7 having over 19 million downloads (currently around 15,000 per day), indicates that a lot of people are successfully sending emails from CF7.

But not for everyone – emails don’t work easily for some CF7 users

If you spend some time in the CF7 support forum you will see a lot of posts from people who do have problems with sending our receiving emails from Contact Form 7.
Contact form is not working …
… form not sending
Refuses to send email … etc.
The important point to note is that the sending and receiving of emails depends heavily on both the server where your WordPress installation is hosted and the email configuration of the local computer where the emails are supposed to be received.
If you are having CF7 email problems, you will need to investigate this issue in detail for your particular local configurations. You have our sympathy, this can be a difficult and time consuming task and you may not, in the end, get it to work.
BUT … it ain’t the plugin that is causing your problems. The plugin works!
Please try to keep that in mind as you work through some of the possible causes and solutions given below.

Tl:dr (too long; didn’t read) version

Sending

Contact Form 7 uses the standard recommended methods used to send emails in WordPress.
The following list contains items that we have found commonly lead to email sending problems with the CF7 plugin (and WordPress in general). We suggest that people work through this list from top to bottom to try to solve their particular email sending issue.
If you are unable to send emails from the CF7 plugin, it is likely that you are unable to send emails from WordPress in general.

You need a functioning mail server

If you are trying to send emails from any WordPress installation, you will need to make sure you have a functioning mail server setup there.
Note: Local installs (using MAMP, WAMP, XAMPP etc.) often don’t have this capability. Trying to test CF7 email functionality on a local WordPress installation with no mail server capability appears to be a common mistake.

Test if your WordPress installation is able to send emails

Try going through the “forgot password” function on wp-login.php.
lost-password
Do you get the email? If you don’t you will need to rectify this.
Contact Form 7 uses wp_mail to send emails. Most quality WordPress hosting will generally support this without the need for any special configuration.
wp_mail is based on the standard PHP mail() function, which uses sendmail. No account information is needed.
If you are a comfortable working with PHP, you can check if wp_mail is functioning by following this article –http://butlerblog.com/2012/09/23/testing-the-wp_mail-function/.
Note: For wp_mail to work, the settings SMTP and smtp_port (default: 25) need to be set in your php.ini file.

Hosting Issues

Some hosting providers require special settings to be applied to your WordPress installation in order to send emails from WordPress. You may need to contact your hosting provider and work with them to ensure emails are being sent correctly from your WordPress installation.
Some hosts don’t support PHP’s mail function. They often claim it’s to reduce spam since the PHP mail() function can be used to send email defining the from address as whatever you want without having to authenticate.
You should be able to get confirmation from your hosting provider that php mail() is functioning correctly from your hosting account.

Alternatively – Try to configure email using SMTP

If your hosting provider does not support wp_mail and the standard PHP mail() function, you can try to configure email sending from WordPress using SMTP (another type of mail service).
WordPress supports SMTP mail but this needs to be configured separately via the admin area of WordPress.
The following plugins can be used to setup SMTP on your WordPress site:
http://wordpress.org/plugins/configure-smtp/
http://wordpress.org/extend/plugins/wp-mail-smtp/
WP Mail SMTP reconfigures the wp_mail() function to use SMTP instead of mail() and creates an options page that allows you to specify various options. You may need to contact your hosting provider to get detailed information on the option settings required.
With SMTP you can also send emails via an external email provider such asGmailZoho MailOutlook or some other online email service, and send outgoing email through their SMTP server rather than from the email service on your WP hosting.
See Install WP Mail SMTP to send all emails through an external SMTP server for some detailed instructions on using SMTP via an external email provider.
Note: When using SMTP you need to authenticate, so there has to be a real email address that the emails are coming from.
Most users on quality WordPress hosting will not need to use SMTP. You should avoid using SMTP if possible as using SMTP can contribute to email authentication issues.

Ensure Proper Return Address is Used

The From: address used in the Mail section of the CF7 interface can be important in determining if an email is able to be sent via the CF7 plugin.
Some hosting requires that any emails being sent via WordPress are from a valid email address on your local domain.
If you leave the From: address in the Mail section of the CF7 interface empty, then by default, the WordPress mailer fills in the email’s From: field with wordpress@yourdomain.com and the email’s From: name as WordPress.
If you setup wordpress@yourdomain.com as a real e-mail address on your account, your host should pass the email on for delivery. In fact it will probably send your mail as long as yourdomain.com is setup to send and receive mail, even if wordpress is not a valid mail box.
But if you set you real email address as the From: address (and it’s something like wpgod@gmail.com), the mail may not send because gmail.com is not a domain handled by the mail server.
To use an email address like wpgod@gmail.com you may need to setup SMTP to send emails via an external email provider. See Install WP Mail SMTP to send all emails through an external SMTP server for some detailed instructions on using SMTP via an external email provider.
There is a particular problem with using Yahoo email addresses as the From: email address – see Yahoo Issue.
When using SMTP you need to make sure any emails are from real a email address
With SMTP you typically need to authenticate – so you will need to make sure that any emails sent via the CF7 plugin are coming from a real email address.
This can be significant problem if you collect the From: email address in your CF7 form.

Using the default From: [your-name] <[your-email]> can cause problems

Using the default From: [your-name] <[your-email]> is very useful. It means you can simply hit reply to answer emails that you receive from people filling in your form.
But you need hosting that allows any email to be used as the From: email. Lots of quality hosting does that, but some hosts don’t (for various reasons), and this can definitely cause problems with sending emails.
For some hosts the From: email address needs to be a valid email on that domain. While we would never use hosting that imposes that restriction, it’s inevitable that some people will have hosts that do.
In that case you may need to can avoid using a customer input Email address as the From address and use something like From: noreply@yourdomain.com.
Then you can include the collected email address as a mailto: link in the body of the email as follows:
include-mailto-link
There is a further problem when users use a Yahoo email address – see Yahoo Issue.
Quote from the CF7 Support Forum:
I was having the very same problem, but only recently. Turns out that the new Dreamhost spam policy was the problem. Since it’s technically “spoofing” the user’s address to send email, Dreamhost no longer allows it.

Adding Additional headers can help

For less restrictive hosts, another possible solution is to add two additional email headers — Sender and Reply-To – in the Additional headers: field in the Mail section of the CF7 interface, like so:
Sender: noreply@yourdomain.com
Reply-To: [your-name] <[your-email]>
mail-contact-form-7-email-headers
These headers will inform the receiving mail server that the email was sent by your website on behalf of the sender.

Your email may be treated as spam

Your email message may have been routed to a spam folder or even worse, simply discarded as malicious. Emails can be considered spam for a whole host of reasons and get rejected at many points in the email process in addition to your spam folder.
This is usually due to email headers (in particular the From email address used) or email content. Adding Additional headers can help in this regard.
See also Contact Form 7 not Sending Emails which explains in more detail the main reasons for failed Contact Form 7 email deliveries and offer some possible solutions.
There is a general problem with Yahoo email addresses – see Yahoo Issue.
There are also a couple of measures you can use to convince recipient’s mail servers that your message is legitimate and should be delivered as addressed. See WordPress Codex – http://codex.wordpress.org/FAQ_Troubleshooting#E-mailed_passwords_are_not_being_received

Use a CF7 Submission Storage Plugin

Many experienced WP users use a submission storage plugin like Contact Form DB or Contact Form 7 Storage to save all your CF7 form submits to the WP database. These plugins provide a robust record of all form submissions even when things go a little wrong.
Our experience is that the submission storage plugins are very robust and rarely fail to save a CF7 form submit. They appear to save a CF7 form submit even if the email is not sent due to a Javascript Conflict or unallowed From: email address.
Contact Form 7 Storage - never miss a single business lead

Plugin or Theme Conflicts

Plugin and theme conflicts are unfortunately a fact of life with WordPress. As one of the most popular plugins in the WordPress Repository, it’s reasonable to assume that CF7 is written so that it does not cause conflicts with other plugins and themes.
However there are many plugins and themes that are not so well written. Like many other popular plugins, CF7 is frequently reported as not working in the WordPress Forums when the real cause is conflict from another theme or plugin – see Plugin or Theme Conflicts for a detailed explanation of this issue.

Javascript Conflict

Contact Form 7 is a good WordPress community member in regards to it’s use of Javascript. It only loads it’s JavaScript where it is needed and only loads scripts required for the current page. It also plugs correctly into the WordPress architecture.
Spinning Arrow
However there are many plugins and themes that are not so well written and a host of CF7 email problems can be due to a Javascript conflict with either your current WordPress theme or one of the other plugins you are using.
A spinning arrow continuing to spin after submitting a CF7 form, is a common symptom of a Javascript conflict.
See Javascript Conflict Problems to look at this issue in more detail.

Contact the developer of the plugin or theme developer causing the conflict

If you identify a conflict with a particular plugin or theme, you could write to the plugin or theme developer and suggest they might have a possible conflict with CF7.
CF7 is one of the most popular plugins in the WordPress Repository, so it makes sense for developers to deal with any potential conflicts.
Also if a plugin or theme conflicts with CF7, it probably also conflicts with many other plugins. It’s generally a sign of a poorly coded theme or plugin and one that people should avoid using.

Contact Form 7 didn’t install or update correctly on your site

It is always possible that Contact Form 7 doesn’t install or update correctly on your site. It’s a general problem with WordPress due to the unreliability of internet connections. Delete the plugin folder at wp-content/plugins/contact-form-7/ and install the plugin again.

Yahoo Issue

There is a general problem with using Yahoo email addresses as the From: email address. See Yahoo Issue.

Bug in WordPress 3.6 – Qmail based Hosts only

There is a bug in the WordPress 3.6 release that causes Contact-7 forms to fail to be emailed – but it only affects those hosts using Qmail based email systems. See
Bug in WordPress 3.6 – Qmail based Hosts only.

Useful Links

Receiving

There are a host of issues that can delay or stop emails on the receiving end of a typical email. You will need to investigate this issue in detail for your particular local configuration.
Quote from the CF7 Support Forum – If anyone has ‘problems’ in not receiving emails, it’s most certainly not this plugin, they should check their settings and their junk folders.

Emails are delivered late

Most emails are delivered within a few minutes, but emails can sometimes be delayed while in transit due to problems on the sender’s mail server, heavy Internet traffic, or routing problems. On rare occasions, delays can last for several hours or more.

The sender’s address is blocked

The Blocked Addresses feature in some Mail systems allows you to create a list of addresses that you don’t want to receive mail from. Mail coming in from one of these senders will neither arrive nor bounce, but will simply be discarded. Check your blocked addresses list and make sure that email address you’re using is not blocked.

You’ve enabled mail forwarding

Is the email address you’re using set to be forwarded to another email address.

Have you set up filters?

You might have set up filters which caused the email to be sent to the Trash folder or to another folder within your Mail account.

Useful Links

Do you have something you think might help others on this issue

This page is still a Work in Progress. We add more information as we become aware of other issues and solutions via the CF7 support forum.
If you have something you think might help others on this issue, you can use the CF7 form below to contact us.
Please note that anything that looks like a request for support or help will be ignored.
Help others on this issue


  1. Input this code: captcha
    (This helps us confirm you are real person and not a bot trying to crack our website)
(Mandatory fields marked Sending ...
Of course this form is made using Contact Form 7 – use Firebug or Chrome Dev Toolsto see how we’ve built it.

    Blogger news

    Blogroll

    About