API:Emailuser

Token
To send an email, an email token is required. This token is equal to the edit token and the same for all recipients, but changes at every login. Email tokens can be obtained via action=tokens with type=email (MW 1.20+), or by using the following method:

Sending email to users
You can send email to users who have a confirmed email address with action=emailuser. Sending email is subject to rate limits.

Parameters

 * : User to send email to
 * : The subject of the message
 * : The message
 * : The token obtained in the previous request. Take care to encode the  as
 * : If set, a copy of the email will be sent to you

Examples
Note: In this example, all parameters are passed in a GET request just for the sake of simplicity. However, action=emailuser requires POST requests; GET requests will cause an error.

Possible errors
In addition to the usual stuff:

Checking emailable status
Before trying to send an email, it is recommended to check if the user is emailable first. To do this, you can execute a list query on the user (or several users at once). Here is an example using Ajax:

If you are testing from a client-side script, it is also possible to simply check for the existence of the t-emailuser list item: