I'm currently in the process of creating a responsive website for a local small business, but I'm stuck trying to figure out the best way to implement email for the contact page. At first I was going to just throw the address in a mailto tag, but I'm concerned about someone seeing the raw address and spamming it.

The alternative is to have an entry form, but that prevents the user from using own email app (especially on mobile). The website is being designed specifically for mobile so I'd like to pick the choice that would be best on phones/tablets.

I checked out this question, but the vote on contact-forms vs mailto is somewhat divided. Because I'm catering to mobile and a small business I'm not sure all that advice applies here.

Is the possibility of spamming worth it so the user can use their preferred email app? Or is it actually a better experience for the user to have the email contained within the webpage so they don't have to open another app?


4 Answers 4


As a user, I prefer an email address for general contact purposes. I think it is an especially good idea for small businesses: it feels like personal, direct contact, which is usually something small businesses want to emphasize as a strength.

An email form, on the other hand, feels impersonal, like I am being directed down a generic support path rather than dealing with a real person directly. And it is less convenient to fill out.

Make the email address a mailto: link, but the text of the link should also be the actual email address. It should not be something like "click here to get help", which will fail if the user's email client isn't set up to handle a mailto. Plus, with a "click here" link it is not clear if you are being directed to another web page or an email address.

The spam is merely a nuisance and should not be decisive. Even if you do absolutely nothing to address this other than use normal inbox spam filtering, it is not that big of a problem. Lots of us live with this. And there are ways of better dealing with it (Igorek mentions some).

Consider a contact form if contact is for a specific purpose. For example, to request a quote or get support for a specific product. In this case, a form that captures necessary information can be helpful to both the business and the user.


Great question!

Security IS a big concern, however there ways to mask the email address which may lower the possibility of spam-bots catching it.

One example is by using htmlentities() method in PHP

Using 'mailto:'

  1. (con) Relies on email client to be setup on a device your are using. If a email client is not setup, you will most likely lose that submission.
  2. (con) Your are not looking for any specific information or a format of the email. Be aware that users may not give you all necessary information your are looking for even if you request it via text leading to your 'mailto:' CTA
  3. (con) Larger security risks around spam
  4. (pro) user will only have to type up a body of the email in a format they want
  5. (pro) you will know their email return address and it will be valid in 99% of cases
  6. (pro) user has their own record of what was sent in their email (thank you Stacey)

Using a form

  1. (con) You will have to ask the user to provide you with their contact information as part of a submission
  2. (con) You have to assume that contact information is correct and you may end up with false information in some cases
  3. (con) User will have to fill out multiple fields and large forms tend to lower form conversion rate
  4. (pro) you can require specific information up front and force a user to provide it
  5. (pro) Some system information can be captured behind the scenes eliminating any human error
  6. (pro) No dependency on device email client
  7. (pro) Can use ani-spam tools to ensure form is submitted by a human
  • 7
    Another advantage of the mailto is that the user has their own record of what was sent in their email. I may want to double-check what I sent or refer back to it later.
    – user56701
    Commented Nov 4, 2015 at 11:01
  • I may be stupid but <?php echo htmlentities('@'); ?> does not return &#64; or &commat; in my environment, but a simple, unencoded @.
    – user41884
    Commented Apr 12, 2016 at 12:24
  • Another advantage of the mailto is that my email client gives me the option to save a draft and compose my message more carefully. In the form my composition might be lost if I don't want to leave the computer running while I sleep over what I want to write. If you contact a company, it will be likely because you have a problem. I don't want to have to hurry such a message.
    – user41884
    Commented Apr 12, 2016 at 12:27

Using a mailto most of the cases let the user send any email with a free of choice by using any email client, plus is a one click away.

Most of the cases people can just see any email address within the web and see it underlined; therefore by only clicking it away the operative system just opens the favourite email client and the user wont bother either to copy and paste it.

Using an email form it is just too complicated for most of the user also because there might be problems by attaching any files; pre setted email forms just might be useful for small websites in which are only requesting a simple hello or either a simple action on top of writing a very custom email.


Provide both.

<p>You can send us an email to <a href="mailto:[email protected]">[email protected]</a> or use this form …</p>

Some prefer to use their own email client, some prefer to use your form. Some don’t have an email client installed (or are using a device with someone else’s email address set up), some don’t want to use their email address to contact you.

And you should not obfuscate the email address. It makes the life of your users harder just to save you some effort. Spam is a problem, but a problem that can be handled.

  • "some don’t want to use their email address to contact you." These forms just ask for your email address and then reply to that anyway. How can people avoid using their email address?
    – user31143
    Commented Nov 6, 2015 at 16:40
  • @dan1111: Case 1: not the email address they set up in their email client for SMTP, but a different one they can receive emails from. For example, I have an email account which can receive emails sent to several addresses (like [email protected]), but I cannot send using these addresses. Case 2: forms that don’t require the email address field (if the sender doesn’t want a reply, or wants a reply per telephone etc.), or where users enter junk email addresses they don’t control ("don’t spam me").
    – unor
    Commented Nov 6, 2015 at 16:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.