Believe it or not, the vast majority of problems with sending email is simple: misspelled email addresses. But, there are other things that can go wrong too.
The most common problem: The destination address is not correct - Double-check that you have made no spelling errors. Examine for added characters on the end of the address like spaces or punctuation. Has there been a change of email address? If you clicked on 'reply' it doesn't necessarily follow that the sender accurately entered their e-mail address in the area for the reply-to. Yes, people really do misspell their own email addresses.
A full or disabled recipient mailbox - Alert the mailbox holder of the problem, or wait until it becomes empty.
Rejected mail due to size or content - send a smaller mail with no attachments or pictures to see if that solves the problem. (See also, below, about using "spammy" words in your messages and subject lines.)
Destination mail service has been 'down' for a long time and incapable of receiving messages within a specified period of time. - Attempt to get in touch with the mailbox owner by another method and inform them of the difficulty, or wait and make another attempt in a couple days.
Sending mail server does not correctly identify itself: Your ISP or Host may need to be adjusted to correctly identify the address. The system name your computer transmits in the SMTP conversation must be identical to the DNS name and the IP address that your computer is currently attached to in order to be RFC compliant.
Bad email headers: Some internet mailing providers check the headings of the message for any errors and its consistency. The content of the message may not even be a consideration; the content of the header alone can cause the message to be rejected. The receiving server, for example, can look to see when the email should have been sent.
RBL Lists: A known spamming server may be listed in one or more reporting companies. Some mail servers check the IP address of the sending server and automatically reject email from these well-known spam sources.
Sender verify failed: The recipient server conducts a check to find out whether the server transmitting the mail is genuine (to make certain the reply-to in your email is legitimate.) In the Spf lookup limit event that your bank or other institution usually transmits email with no reply-to address, you might have to request your server administrator to remove the sender verification requirement. Most hosts no longer do the sender-verify because it does not stop spam, and it is now against RFC regulations. Sender-verify is really only counter-productive.
SPF Record mismatch: SPF records were generated so that a receiving server could monitor the IP of the actual source of the email and map it to the IP that it should be from. If these two IP addresses do not match, the email will be identified as spam and rejected.
Heuristic spam filters: These filters are "smart" filters that look at patterns and commonalities among spam e-mails and reject these e-mails when they fall into a red flagged category. They check the subject of the message, the text of the message, they check against RBL databases (above) and learn certain key words such as 'viagra' and other common spam words that have been deliberately misspelled in the hopes of by-passing the filter.