Spam filter: how to avoid being blacklisted by a white sender. Test emails before sending


Mail.Ru has its own antispam for many years. The desire to develop your own product is understandable, because... at a certain stage of the project’s development, the requirements for the quality and scalability of the anti-spam mechanism became too great to be satisfied even by highly customized “foreign” products. Of course, some services and components independent suppliers we still use them (for example, to check emails for viruses), but their role is no longer decisive.

The requirements for our own antispam were very clear and logical - maximum speed and accuracy. Of course, there is no limit to perfection; the relationship between spammers and their opponents is an eternal struggle between shield and sword. But now we can say with confidence that we have made serious progress towards our cherished goal and continue to increase our momentum.

So, how does it look and work - modern (2011) antispam of [email protected]?

First of all, upon approaching the mail servers, all senders are checked against a database of IP addresses found in spam mailings. The database is dynamically updated in real time: some IPs are “whitened”, others are blacklisted. Accordingly, letters from IP addresses with a “tarnished” reputation are not accepted - this way we manage to cut off the majority of botnets.

If the sender's IP is not on the blacklist, then the letter is accepted by the server and is checked by two anti-spam systems: Kaspersky Anti-Spam (or KAS for short) and the spam filtering system developed by Mail.Ru - MRAS (Mail.Ru Anti-Spam). These two systems always operate in parallel.

The name MRAS appears, in particular, in the service headers of almost every letter passing through Mail.Ru mail. For example, the header “X-Mras: Ok” indicates that no spam signatures were detected in this message.

When choosing the MRAS architecture, we used the most common approach: collecting samples of spam emails, analyzing them and generating signatures. To put it simply, a signature is a piece meaningful information in the letter: phone number, link, characteristic phrase or keyword, etc. MRAS evaluates a letter based on its signatures according to simple logic: if a letter contains signatures characteristic of spam mailings, this letter is most likely spam.

Separately, it is worth noting the system for recognizing graphic spam. Each picture received in a letter is analyzed and also decomposed into signatures that are involved in decision making. For example, antispam confidently identifies phone numbers and website addresses written graphically, and the algorithm even works with distorted and noisy images.

In addition to signatures in MRAS, there are so-called rules that describe more complex logic. Using rules in MRAS, you can create filters that take into account multiple characteristics of messages, including service headers, image parameters, link format or patterns, frequency and reputation characteristics of any entity in the message, etc.

When we were choosing an engine to implement the rules, various options were discussed. The main requirements were: high performance, syntax flexibility and easy extensibility. We found that the built-in Lua language interpreter met the above conditions. As a result, we received a powerful and flexible tool that was useful not only for creating rules. Nowadays, with the help of Lua scripts, a significant part of the business logic is implemented in MRAS, for example, mechanisms for parsing images and frequency shingles, and various reputation mechanisms.

How does MRAS know about spam mailings?

There are several sources of spam samples for MRAS. The main source is complaints from users who click the “This is spam” button in the mail web interface. They are grouped, undergo automatic filtering and then enter the decision-making system.

Another important source is trap boxes - boxes that are specially registered and “lit up” on the Internet, where only spam ends up. Externally they look like boxes ordinary users- these can be accounts in My World and other social networks, messages on forums and in guest books, etc. Unscrupulous mailers collecting a database of addresses on the Internet will most likely hook several “traps” - and when a letter arrives at them, it will most likely serve as the main spam signature.

Finally, at the third stage there is a group of [email protected] analysts who, 24×7 in real time, analyze complaints received from users about letters that may be spam, the content of “trap” boxes, etc.

  1. the letter is not spam
  2. the email may be spam
  3. The letter is definitely spam.

The same grades are issued by KAS. If both anti-spam systems consider the letter to be good, the letter is sent to the “Inbox” folder; if one or both systems mark the letter as possible spam, then to the “Spam” folder. If at least one of the systems is sure that the letter is spam, then such a letter does not reach the user, and the sender receives a bounce message.

It is important to note that the same system also processes outgoing letters from Mail.Ru servers. So if a user tries to send a spam email, they are notified that the email cannot be sent.

It is interesting to note that MRAS checks the letter not only at the entrance, but also some time after it reaches the user's mailbox - this is due to the fact that new data on spam mailings could change the situation and, accordingly, the system's opinion. Therefore, if at the moment when the letter was processed by MRAS, it was not identified as spam, but after a few minutes it was already identified, MRAS moves the letter from the “Inbox” to the “Spam” folder. Naturally, this happens strictly before the user has entered the “Inbox” folder and seen the letters.

Everything that has been said above constitutes an automatic spam filtering system that works for all users. However, different users have different preferences, so we recently introduced a customized spam filtering component.

What's new (2011)?

It’s no secret that with the massive spread of social networks, online games, online stores and other services that actively communicate with their audience through Email, mountains of various notifications began to accumulate in users' mailboxes. And our research shows that for modern users, spam is no longer just a mass mailing about “printing business cards,” “green cards,” or “increasing what you know.” People consider any unwanted email to be spam, be it a boring mailing list with an opaque unsubscribe or a long-uninteresting Internet service that ends up in the “Inbox” with enviable regularity.

According to internal statistics Mail.Ru, users receive several dozen different mailings every day from social networks, stores and Internet services. An advanced user can easily avoid the accumulation of mailings in their Inbox using filters or blacklists. In order to make life easier for all other users, we have introduced personal antispam.

Now any user can, in one click, once and for all get rid of the annoying mailing list of an Internet service, social network or store - i.e. completely legitimate services. It is enough to select one unnecessary letter and click the “This is spam” button, after which all letters from this sender will be sent to the Spam folder. And of course, this will not affect the delivery of letters to other users; in this case we are talking purely about customization anti-spam mechanism “custom-made”.

By the way, the “This is spam” button has an antipode, without which the personal antispam mechanism would not be complete. The “This is not spam” button, available for letters from the Spam folder, allows you to move a letter that ended up in Spam by mistake to the Inbox and “whitewash” the sender’s address. In the future, all emails from this sender will be sent to your Inbox.

Of course, in reality everything is somewhat more complicated. When creating individual black and white lists, we take into account not only the sender's address, but also other parameters of the letter. Otherwise, we would be too nice for spam senders to forge the From header 😉

And of course, in addition to replenishing individual spam filters, clicking the “This is spam” and “This is not spam” buttons is also used to train general antispam. So, by clicking these buttons, the user not only makes it better for himself, but also for all other users.

By the way, as you might expect, users click the “This is not spam” button 10-20 times less often than the “This is spam” button.

And finally... how to send mail 😉

Many of you are directly related to web development and, one way or another, send letters to your users. To ensure that your emails are delivered reliably, we have formulated recommendations for senders. Their implementation, of course, is not strictly necessary, but it makes the world a better place 😉 Recommendations general can be found at http://help.mail.ru/mail-help/rules/general, and more specific technical requirements can be found at http://help.mail.ru/mail-help/rules/technical.

the main task mail - deliver letters to your users. Therefore, we diligently fight against false positives antispam when they occur. If your letters do not reach users, write to [email protected]. In order to understand the problem, you need to attach full copy the letter you sent (with all the service headers), as well as the non-delivery response (also in full).

I would like to pay special attention to the mechanisms that are designed to compensate for the shortcomings of email transmission protocols. We are talking about specifying the correct SPF records and especially about signing each message using DKIM, which has been written about more than once on Habré.

Essentially, if all honest senders used these approaches, the world's spam situation would radically improve. Therefore, we urge you to implement these technologies as soon as possible, especially since setting it up is quite simple (for example, here is the documentation for setting up DKIM in Exim or one of the DKIM implementations for postfix).

Sergey Martynov,
Head of [email protected]

In this article I want to talk about the anti-spam system in Mail.Ru Mail and my experience of working with Tarantool within the framework of this project: what tasks we use this DBMS for, what difficulties and features of its integration we encountered, what mistakes we stepped on, how we got into trouble and In the end we learned Zen.

At first Short story antispam. The Post Office began implementing antispam more than ten years ago. The first solution that was used for filtering was Kaspersky Antispam paired with RBL ( Real-time blackhole list- a real-time list containing IP addresses that are in one way or another associated with sending spam). As a result, the number of unwanted emails decreased, but due to the nature of the system (inertia), this approach did not meet the requirements: quickly (in real time) suppress spam mailings. An important condition was the speed of the system - the user should receive verified letters with minimal delay. The integrated solution couldn't keep up with the spammers. Spam senders very dynamically change (modify) the content and model of their behavior when they see that their letters are not being delivered to the addressee, so we could not put up with inertia. And they began to develop their own spam filtering system.

The next step in Mail.Ru Mail was the appearance of MRASD - Mail.Ru Anti-Spam Daemon. In fact, he was very simple system. A letter from a client went to the Exim mail server, went through primary filtering using RBL, and then was sent to MRASD, where all the “magic” was done. The antispam demon parsed messages into parts: headers, letter body. Then the simplest text normalizations were carried out on each of them: bringing characters similar in writing to a certain type (for example, the Russian letter o and english letter o turned into one character), etc. After normalization was performed, the so-called entities, or signatures of the letter, were extracted. By analyzing different parts of email messages, spam filtering services block spam based on certain content. For example, you can create a signature for the word "Viagra", and all messages that contain this word will be blocked. Other examples of entities are URLs, images, and attachments. Also, when checking a letter, its unique fingerprint is formed - using a certain algorithm, many hash functions for the letter are calculated. For each hash and entity, statistics (counters) were kept: how many times it was encountered, how many times it was complained about, the entity flag - SPAM/HAM (ham in antispam terminology is the antonym of the term spam, meaning that the message being checked does not contain spam content). Based on these statistics, a decision was made when filtering letters: when a hash or entity reaches a certain frequency, the server can block a specific mailing.

The core of the system was written in C++, and a significant part of the business logic was transferred to the interpreted language Lua. As I mentioned above, spammers are dynamic people and quickly change their behavior. You need to be able to react immediately to every change, which is why we decided to use an interpreted language to store business logic (there is no need to recompile the system every time and deploy it to servers). Another requirement for the system was speed - Lua good indicator in terms of speed, in addition to everything, it is easily integrated into C++.

The figure above illustrates a simplified scheme for transmitting a letter: it goes from the sender to the server, passes initial checks (1), and if successful, it is sent for MRASD checking (2). MRASD returns the result of the check to the server (3), and based on it, the letter is either placed in the Spam folder or sent to the user's inbox.

The implementation of MRASD reduced the number of spam messages delivered to the user by ten times. Time passed, the system was improved, new subsystems and components appeared, and new technological tools were introduced. The system expanded and became more complex, the tasks solved by the antispam team also became more diverse. The changes could not but affect the technology stack, which I will talk about.

Evolution of the technology stack

At the beginning of the development of mail services, the flow of letters, and their content, was much more scarce than in currently, but both the choice of tools and computing abilities were different, to put it mildly. From the “parent” MRASD model described above, it is clear that for the system to function, it was necessary to store various kinds of statistical information. At the same time, the percentage of “hot” (i.e., frequently used) data was high, which undoubtedly imposed certain requirements on the data warehouse. As a result, the choice settled on MySQL for storing “cold” (rarely updated) data. The question remained: which solution to choose for storing hot (baking) statistics? Having analyzed available options(their performance and functionality for storing hot, but not critical data), we chose Memcached - at that time it was already a fairly stable solution. But there remained a problem with storing hot important data: Memcached, like any cache, has its drawbacks, one of which is the lack of replication, as well as the problem with warming up the cache when it crashes (is cleared). As a result of searching for a haven for our important and hot data, the choice fell on the non-relational key-value database Kyoto Cabinet.

As time passed, the load on mail, and as a result, on antispam, grew. New services appeared, it was necessary to store more and more data (Hadoop, Hypertable). By the way, at the moment, at its peak, the number of letters processed per minute reaches 550 thousand (if you average this figure per day, then on average about 350 thousand messages are checked per minute), the volume of analyzed logs is more than 10 TB per day. But let's go back to the past: despite the growing loads, the requirement for fast work with data (loading, saving) remained relevant. And at some point, Kyoto stopped coping with the volumes we needed. In addition, we wanted to have a more feature-rich tool for storing important hot data. In short, we had to start turning our heads to find worthy alternatives that would be flexible and easy to use, productive and fault-tolerant. At that time, the Tarantool NoSQL database was gaining popularity in our company, which was developed within our own walls and met the “wants” we had set. By the way, recently, while reviewing our services, I felt like an archaeologist: I came across one of the most earlier versions- Tarantool/Silverbox. We decided to try this database because the stated benchmarks covered our volumes (there is no exact data on loads for this period), and the storage also satisfied our requests for fault tolerance. An important factor is that the project was “close by”, and you could quickly submit your tasks using JIRA. We were among the newcomers who decided to try Tarantool in our project, and I think that successful experience The pioneers also pushed us to make this choice.

Then our “Tarantula era” began. It has been actively implemented and is still being implemented into the antispam architecture. Currently, you can find queues implemented on the basis of Tarantool, high-load services for storing all kinds of statistics: user reputation, sender IP reputation, user trust statistics (karma), etc. Now integration work is underway modernized system storing and working with entity statistics. Anticipating questions about why we are fixated on one solution in our project and do not move to other storage facilities, I will say that this is not entirely true. We are studying and analyzing competing systems, but at the moment Tarantool successfully copes with the tasks and workloads assigned to it within the framework of our project. The implementation of a new (unfamiliar, previously unused) system is always fraught with complications and requires a lot of time and resources. Tarantool has been well studied in our (and not only) project. Programmers and system administrators They have already used it and know the intricacies of how the system works and configures it to be as effective as possible. Another plus is that the development team is constantly improving their product and providing support (and it sits close, which is also very convenient :)). So, when implementing a new solution based on data storage in Tarantool, I very quickly received answers from the guys to my questions and necessary help(I'll talk about this a little later).

A short excursion into systems where Tarantool is used

Karma is a numerical characteristic that reflects the degree of trust in the user. It was conceived primarily as the basis of a general “carrot and stick” system for the user, built without resorting to complex dependent systems. Karma acts as an aggregator of data received from other reputation systems. The idea of ​​the system is simple: each user has his own karma - the higher it is, the more we trust the user, the lower it is, the more harshly we make decisions when checking letters. So, if the sender sends an email with suspicious content and has a high rating, the email will be delivered to the recipient. Low karma is taken into account when deciding whether a letter is spam as a pessimizing factor. This system reminds me of a school exam journal. The excellent student will be asked two or three additional questions and will be allowed to go on vacation, while the poor student will have to work hard to get a positive grade.

Tarantool, which stores karma-related data, runs on a single machine. Below is a graph of the number of requests executed on one Karma instance per minute.

RepIP/RepUser

RepIP And RepUser(reputation IP and reputation user) - a high-load service designed to record statistics about the activity and actions of senders (users) with a specific IP, as well as the user when working with mail for a certain time interval. Using this system, we can tell how many emails the user sent, how many of them were read, and how many were marked as spam. The peculiarity of the system is that when analyzing behavior, we do not see an instantaneous picture (snapshot) of activity, but unfolded over a time interval. Why is it important? Imagine that you moved to another country where there are no means of communication, and your friends remained in their homeland. And now, a few years later, they bring the Internet to your hut. You get into social network and you see a photo of your friend - he has changed a lot. How much information can you extract from a photo? I don't think so. Now imagine if you were shown a video in which you can see how your friend is changing, getting married, etc. - a kind of video biography. I think in the second case you will get a much more complete picture of his life. Similarly with data analysis: what more information we have, the more accurately we can evaluate user behavior. You can see a pattern in the intensity of mailings and understand the “habits” of mailers. Based on such statistics, each user and IP address is given a measure of trust in it, and a special flag is set. This flag is used during primary filtering, which filters out up to 70% unwanted messages even by the time the letter arrives at the server. This figure shows how significant the service is, which is why it is required maximum performance and fault tolerance. And we also use Tarantool to store such statistics.

Statistics are stored on two servers with four Tarantool instances each. Below is a graph showing the number of RepIP requests being executed, averaged over one minute.

When implementing this service, we had to face a number of tasks that were related to setting up Tarantool. What distinguishes this from the previously described systems is that the size of the packet with statistics stored in RepIP/RepUser is much larger: the average packet size is 471.97 bytes ( maximum size package - 16 KB). The package can be divided into two logical components: a small “basic” part of the package (flags, aggregated statistics) and a large statistical part (detailed statistics on actions). Working with an entire package results in increased network utilization and increased loading time from saving the record above. A number of systems only need the basic part of the package, but how to get it out of tapla(tuple is what the entry is called in Tarantool)? Stored procedures come to our aid. To do this, we need to add the function we need to the init.lua file and call it from the client (starting from version 1.6, you can write stored procedures in C).

function get_first_five_fields_from_tuple(space, index, key) local tuple = box.select(space, index, key) -- If the entry is not found, exit if tuple == nil then return end -- We form the tuple we need local response = () for i = 0 , 4 do -- Indexing starts from zero, not from 1 table .insert(response, tuple[i]) end return response end

Problems with versions before 1.5.20

There were some adventures. After the scheduled restart of Tarantool, clients (there were 500+ of them) started knocking on the server and could not connect (they dropped out due to a timeout). It should be noted that progressive timeouts did not help either - in case of an unsuccessful connection attempt, the time of the next attempt is delayed by some increasing amount. The problem turned out to be that Tarantool accepted one connection in one event-loop cycle (although there were hundreds of them). The problem can be solved in two ways: by installing new version 1.5.20 and higher or by setting configuration file(you need to turn off the io_collect_interval option, and then everything will be fine). The development team has fixed this issue in as soon as possible. It is missing in version 1.6.

RepEntity - reputation of entities

Currently, a new component for storing statistics for entities (URL, image, attach etc.) is being integrated - RepEntity. The idea of ​​RepEntity is similar to the previously described RepIP/RepUser - it also allows you to have detailed information about the behavior of entities, on the basis of which decisions are made when filtering spam. Thanks to RepEntity statistics, we can catch spam mailings based on the message entities. For example, if the email includes a “bad” URL (containing spam content, a link to a phishing site, etc.), we will be able to quickly notice and suppress such emails. Why? Because we see the dynamics of the distribution of this URL and can detect changes in its behavior, unlike “flat” counters.

The main difference (feature) of RepEntity from the IP reputation system, in addition to the changed packet format, is a significant increase in the load on the service (the volume of processed and stored data and the number of requests increases). For example, a letter can contain up to a hundred entities (while IP is no more than ten), most of which need to be downloaded and saved full package with statistics. I note that a special aggregator is responsible for saving the package, which first accumulates statistics. Thus, within the framework of this task, the load on the DBMS increases significantly, which requires careful work when designing and implementing the system. I would like to especially draw your attention to the fact that when implementing this component, Tarantool version 1.5 is used (this is due to the peculiarities of the project), and further discussion will be about this version.

The first thing that was done was to estimate the required amount of memory to store all these statistics. The importance of this point can be indicated by numbers: under the expected load, an increase in the packet size by one byte leads to an increase in the total stored information by one gigabyte. Thus, we were faced with the task of storing data in a tuple as compactly as possible (as I mentioned above, we cannot store the entire package in one tuple cell, since there are requests to extract part of the data from the package). When calculating the amount of data stored in Tarantool, you should remember that there are:

  • index storage costs;
  • costs of storing the size of the stored data in a melt cell (1 byte);
  • The limit on the size of the map is 1 MB (in version 1.6).

A large number of various queries (reads, inserts, deletes) led to Tarantool starting to time out. As it turned out during the study, the reason was that the frequent insertion and removal of packages caused a complex rebalancing of the tree (a tree key was used as all indexes - TREE). This database has its own cunning self-balancing tree. In this case, balancing does not occur immediately, but when some condition of “imbalance” is reached. Thus, when the tree was “sufficiently unbalanced”, balancing was triggered, which slowed down the work. In the logs you could see messages like Resource temporarily unavailable (errno: 11), which disappeared after a few seconds. But during these errors, the client could not obtain the data it was interested in. Colleagues from Tarantool suggested a solution: use another type of “wooden” key - AVLTREE, which rebalances with each insertion/deletion/change. Yes, the number of rebalances has increased, but their overall cost has been lower. After new scheme was refilled and the database was restarted, the error no longer appeared.

Another challenge we faced was cleaning up outdated records. Unfortunately, in Tarantool (as far as I know, the same in version 1.6) it is not possible to set TTL (time to live) for the specified record and forget about its existence, shifting the worries about its deletion to the data storage. But at the same time, it is possible to write the cleaning process yourself in Lua based on box.fiber . On the other hand, this approach gives greater freedom of action: you can write complex deletion conditions (not only in terms of time). But in order to write the cleaning process correctly, you also need to know and take into account some subtleties. The first preemptive process (cleaning fiber) that I wrote severely slowed down the system. The fact is that the amount of data that we can delete is significantly less than the total number of records. In order to reduce the number of records that are candidates for deletion, I introduced a secondary index on the field of interest to me. Then I wrote a fiber that traversed all candidates (whose modification time was less than the specified one), checked additional conditions for deletion (for example, that the record flag was not set) and, if both conditions were met, deleted the record. When I tested without load, everything worked fine. With low load, everything also went like clockwork. But as soon as I approached half of the expected load, problems arose. My requests started to time out. I realized that I had made a mistake somewhere. I started to look into it and realized that my idea of ​​how fiber works was wrong. In my world, the fiber was a separate thread, which in no way (except for context switching) should not affect the reception and processing of requests from clients. But later I found out that the fiber uses the same event-loop as the thread for processing requests. Thus, iterating in a loop through a large number records, without the delete operation, I simply “blocked” the event-loop, and requests from users were not processed. Why did I mention the delete operation? Because every time delete was executed, a yield occurred - an operation that “unblocks” the event-loop and allows the next event to be processed. From here I concluded that if n operations (where n needs to be looked for empirically - I took 100) were performed without yield, it is necessary to do a forced yield (for example, wrap.sleep(0)). It should also be taken into account that when a record is deleted, the index may be rebuilt and, by iterating through the records, you can skip part of the data to be deleted. Therefore, there is another option for removal. You can select a small number of elements (up to 1000) in a loop and iterate through these 1000 elements, deleting unnecessary ones and remembering the last one that was not deleted. And after that, at the next iteration, select the next 1000, starting from the last one that was not deleted.

local index = 0 -- Index number by which keys will be selected local start_scan_key = nil -- The first index from which we will select local select_range = 1000 -- Number of records to select in select_range local total_processd = 0 -- Number of processed records (tuple) local space = 0 -- Space number local yield_threshold = 100 -- Allowed number of requests that do not call yield local total_records = box.space:len() -- Total number of records in space while total_processed< total_records do local no_yield = 0 local tuples = { box.space:select_range(index, select_range, start_scan_key) } for _, tuple in ipairs (tuples) do -- Iterate over tuples local key = box.unpack ("i" , tuple) if delete_condition then box.delete(space, key) -- delete does yield no_yield = 0 else no_yield = no_yield + 1 if no_yield > yield_threshold then box.fiber.sleep(0 ) -- We force yield end start_scan_key = key -- Update the last undeleted key end total_processed = total_processed + 1 done

Also, as part of this work, there was an attempt to implement a solution that would help painlessly carry out resharding in the future, but the experience turned out to be unsuccessful, the implemented mechanism carried a lot of overhead, and as a result, the resharding mechanism was abandoned. We are looking forward to the appearance of resharding in the new version of Tarantool.

Best practice:

You can achieve even better performance by disabling xlogs. But it’s worth considering that from this moment on Tarantool will act as a cache, with all the ensuing consequences (I’m talking about the lack of replication and warming up of data after a restart). Don’t forget that it is still possible to periodically take a snapshot and, if necessary, restore data from it.

If several Tarantools are running on one machine, then to increase performance it is worth “nailing” each of them to the kernels. For example, if you have 12 physical cores, then you should not raise 12 instances (you need to remember that each Tarantool, in addition to the execution thread, also has a VAL thread).

What is missing:

  • Shardinga.
  • Cluster approach with the possibility of dynamic cluster configuration, for example, in the event of adding nodes or node failure, similar for MongoDB (mongos), Redis (redis sentinel).
  • Possibility of setting TTL (time to live) for recordings.

Summing up

Tarantool plays an important role in the antispam system; many key high-load services are based on it. Ready-made connectors make it easy to use it in different components written in different languages. Tarantool has proven itself well: during the time the database was used in the project, there were no serious problems related to its operation and stability in solving the assigned tasks. Let me remind you that there are a number of subtleties that need to be taken into account when setting up the database (features for version 1.5) for its effective operation.

A little about plans for the future:

  • Increasing the number of services in the project that work with Tarantool.
  • Migration to Tarantool 1.6.
  • We also plan to use Sophia, including for the repentity task, since the amount of really hot data is not so large.

Spam filter is a program that is configured to process and filter incoming mail to the server according to certain parameters: IP address, stop words in the text of the letter, and regular expressions, features of technical titles, etc.
Each major email service (Rambler, Yandex-mail, Mail.ru...) filters letters for spam, but still quite a large number of unwanted emails pass through spam filters undetected. Why this happens, and how to properly configure your mailbox to avoid this, you will learn in this article.

What is spam
Spam(spam) is unwanted advertising sent against the will of the recipient. The beginning of the spam boom on the RuNet can be considered the beginning of the 2000s, when the domestic segment of the Internet began to develop very actively. Spam has many varieties - spam mailings, flooding of guest books, forums and bulletin boards, ICQ spam, etc. In each specific case, they use their own methods of protecting against unwanted messages.
This article will cover all the main aspects of mail (e-mail) spam and protection against it.

Spam filter is protection against advertising?
Valid currently for any postal service Some spam filters are used. In addition, there are many antispam plugins for popular mail programs The Bat, Outlook Express and others. But at the same time, spam is flying into our inboxes with renewed vigor. But the worst thing, in my opinion, is different. The fact is that as a result of the merciless fight against spammers, many normal letters are sometimes lost, which can sometimes be very important. It was the problem with the delivery of important mail that prompted me to write this article, and I hope it will help reduce the flow of all kinds of garbage into your mailbox, and accordingly reduce the number of lost important letters.

How does a spam filter work?.
Antispam filters work using different algorithms, but the main thing for all is the analysis of the letter upon receipt according to certain criteria. All advertising letters from spammers are written according to a template. After all, a spammer will not write each letter manually when he has an e-mail database of 1 million or more addresses. And as soon as he launches a mailing list (you can’t send such a volume of letters instantly), and the first recipients of his letters complain about spam, then this mailing list will be immediately blacklisted, and all subsequent letters will be cut off by antispam filters using this system. These are so-called early warning systems that allow you to block a spammer at an early stage of mailing.
Another method is based on a more detailed study of the letter and identifying signs of spam mailing in it. If the letter is replete with words: Advertising, special offer, buy, discounts, sale... etc. This letter will be clearly marked as suspicious. The letter may contain a non-existent sender's address, which is easy to check, or the address may be on a blacklist. Instead of text, there may be a picture with an advertisement placed. Normal letters, as a rule, do not contain large text. And letters from the creators of various kinds of pyramids contain a large amount of information, which indicates what, where, how and why you need to buy part of some miracle program, and so on in this spirit.

This type of antispam filters usually has flexible settings on the user's side. The main thing here is not to go too far. The owner of the mailbox can personally specify the maximum size of letters to let through, which addresses to add to the blacklist, and filter messages by subject and words in the body of the letter. True, this method is not suitable for people who maintain active email correspondence. After all, it is impossible to warn all senders to indicate, for example, a keyword in the subject of the letter, and, as a rule, many senders are not familiar with it in advance.

Morality– the decision whether a letter is spam is made by the program, not by a person. But the program is not characterized by one quality - artificial intelligence, and therefore all spam filters, if desired, can be easily bypassed, or, more simply, deceived.

How to bypass the spam filter? Easily!
And yet, bypassing antispam systems is not easy, but very simple. This is confirmed by the fact that the problem of spam is still relevant. Only one person can make a 100% correct decision about whether this letter is needed or not! And this person is the recipient of the letter. Indeed, what if a person subscribes to advertising mailing from some company. But this is all polemic, and now the facts. Since the letter is filtered by antispam systems based on one or another criterion, then the spammer only needs to compose a “harmless” letter, i.e. the letter is as similar as possible to a regular one (needed by the recipient). The expression: “Brevity is the sister of talent” is very appropriate here. The shorter the letter, the more difficult it is to highlight the details characteristic of spam.
It is necessary to minimize the content of advertising words in the letter as much as possible, and modify the remaining ones. The word “Advertising” can be written like this:
Advertising(spaces between letters), Advertising(letters separated by dashes), Advertising(here the Russian letters “e” and “a” are replaced with similar Latin ones). As you can see, there are many options; for a person, any word will have the meaning “Advertising,” but many antispam systems will not understand this.
As for bypassing antispam systems that work on the principle of early detection of spam mailings, here it is enough to create a couple of dozen different templates in advance, and after each mailing of 100 thousand letters, change the letter template, domain and e-mail of the sender. This approach is widely used in spam bot networks (a network of infected user computers).

Do you want to know how to make money online?
Download the free book by Vladislav Chelpachenko
=>>

Hi all! In touch Andrey Khvostov, founder of the Systemically Income project, and author of the blog "".

Today I want to address a question that my students and subscribers regularly ask me. This question: “How to bypass SPAM filters when sending emails to your subscribers.”

And also these questions:

  • “How to increase the delivery of letters to your subscribers”;

Before mailers used spam filters, everything was simple and clear. It was enough to write good, interesting letters that subscribers read with pleasure and are waiting for.

Now, everything has become much more complicated, and even completely harmless letters may not reach subscribers, or end up in the spam folder. At the same time, outright spam, which we did not subscribe to, easily ends up in the inbox.

Why? Yes, because those who send spam know perfectly well how to bypass spam filters and use all means of protection against them. When an ordinary blogger sending a newsletter to the database may make a mistake, and his letters will go to spam, and his e-mail address ends up on the blacklist.

How to bypass SPAM filters when sending emails to subscribers

First, let's understand what kind of beast these are - spam filters. And then we will learn methods to bypass blocking.

Firstly, almost all email services have a system for evaluating incoming emails using points.

All incoming letters are subject to such an assessment, as a result of which the number of points assigned to each of your letters is summed up. If the result is “low”, indicating poor quality content, all subsequent emails are automatically sent to spam.

Secondly, the number of clicks on spam by email recipients is taken into account. This can happen when you have acquired a subscriber base and sent letters to it. Since people don’t know you, many will click on the SPAM button, and your address, and all subsequent letters sent from it (even to your subscribers), will end up in the spam folder.

No one is immune from the actions of inadequate subscribers who signed up for your newsletter or free product and then decided to “unsubscribe” by clicking on the “spam” button. This also happens quite often, and causes great harm to the author of the white mailing list.

In order to make it easier to get off the “black” list, you need to conduct your mailings not from regular postal addresses, but from the mailing address of your domain. Which must be confirmed by at least three digital signatures from the following: DKIM, SPF, MX, DMARC.

How to bypass SPAM filters - creating mail with a domain name

Now create an email with your domain name not a problem, since Yandex and Mail provide everything the necessary conditions and tools.

Moreover, the mail will be convenient, understandable, light and beautiful, displaying statistics, analytics, and so on. Moreover, these statistics will be much more accurate than what the Smart or Just mailing services provide you with.

You will have access to all the unique information on your subscribers, who they are, their income level, whether there are more men or women, and so on.

Who is interested in how to create mail on Yandex, or Mail, with the name of your domain - write in the comments, then I will write a continuation and fully cover this issue.

You may ask, why do we need to create email with a domain name? The fact is that providers treat such addresses confirmed with digital signatures more loyally, send fewer emails to spam, and if your address is blacklisted, they quickly remove it from there.

Even if the author of the newsletter made ill-considered actions that led him to fall under the filter, the attitude towards such an author will be more loyal, and it will be possible to quickly resolve all the issues that arise by contacting the support service.

How to bypass SPAM filters - contacting providers

After creating email addresses with a domain name and confirming them with digital signatures, I recommend sending the providers a request in which you should indicate that you are the author of the “white mail” and ask them to help you avoid mistakes in your letters.

That is, so that they tell you what are errors, from their point of view, what structure of letters should be, what words are spam words, and the filter reacts to them.

Since different providers may have differently configured spam filters that react differently to the structure of letters, their content and words.

Even if the providers do not answer you anything (which happens extremely rarely), save this request, since you will have a strong argument in your favor, if undesirable situations arise, that you sincerely tried to create a white, legal newsletter without errors and violations.

This will help you avoid penalties in the form of blocking mailings and blacklisting your address.

How to bypass SPAM filters - replace spam words, completely removing them from the text

When writing letters, look at them through the eyes of the provider, whose responsibilities include protecting clients from spam mailings.

That is, the presence of spam words: work, earnings, profit, income, advertising, and so on.

That is, all words associated with getting rich quick, income, money are considered spam words.

Advertising text that is too long is also not welcomed by many email services, as is complete absence text, for example, you send a picture with advertising text on it, and to the picture you don’t add any text at all, except for a link.

Try to completely eliminate stop words in your letters, replacing them with something that makes sense. Fortunately, our Russian language is so rich that you can describe any problem or situation with various words or phrases.

For example, you need to write that there is an opportunity to earn money, and receive money automatically by investing a small amount of money and a couple of hours of time.

How to bypass SPAM filters - examples of replacing spam words

How do you write this sentence without using spam words? I would write it like this:

“There is an opportunity to meet in person. Maximum results and minimal effort. We’ll meet in a month in Bali.”

Or this: “There is an opportunity to travel with the whole family, not depend on circumstances, become free and successful, if interested, follow the link”

Which offer will interest you more, the first, second, or third? Avoiding spam words is not a problem - the main thing is that your offers really provide value and are not “dummy”, otherwise no protection against spam filters will help you, people will simply stop reading your newsletter.

P.S. I am attaching screenshots in affiliate programs. And I remind you that everyone can do it, even a beginner! The main thing is to do it correctly, which means learning from those who are already making money, that is, from professionals.

Do you want to know what mistakes beginners make?


99% of beginners make these mistakes and fail in business and making money on the Internet! Make sure you don't repeat these mistakes - “3 + 1 ROOKIE MISTAKES THAT KILL RESULTS”.

Do you urgently need money?


Download for free: " TOP - 5 ways to make money online" 5 best ways to make money on the Internet, which are guaranteed to bring you results of 1,000 rubles per day or more.

Here is a ready-made solution for your business!


And for those who are used to taking ready-made solutions, there is “Project of ready-made solutions for starting to make money on the Internet”. Find out how to start your own business online, even for the greenest beginner, without technical knowledge, and even without expertise.

Marketers spend a lot of time writing email text, creating beautiful templates and conversion themes - all for the sake of high open and click rates. However, before sending, it’s worth considering how likely it is that subscribers will receive the email. IN last years Anti-spam laws are becoming stricter in many countries, and spam filters are becoming more sophisticated. Today we will share the secrets of getting into Inbox.

Don't buy email address databases

Buying a mailing list is a bad idea. Firstly, this practice is contrary to the agreement with the email provider. Secondly, potential recipients don’t know anything about your company, haven’t subscribed, and are likely to mark the emails as spam. In addition, as a rule, low-quality addresses are sold.

Do not collect open email addresses from websites

Collecting open emails from websites is a quick way to grow your database, but it doesn’t allow you to effective mailing. In some countries (eg the USA) this practice is illegal.

Remove email addresses that regularly send delivery error messages

A hard delivery error means that the email was sent to an incorrect or non-existent email address. The hard delivery error rate is one of the key factors that ISPs use to determine sender reputation. If you have a lot of these errors, your mailings will end up in the spam folder.

Don't write in capital letters

Writing entire words in capital letters is like yelling at people. Of course, the capital font attracts attention. But it irritates many people and does not inspire confidence, because it is often used to send spam.
According to a study by the Radicati Group, more than 85% of users prefer the subject line to be typed lowercase letters. Effective Alternatives Caps Lock- personalization, relevant content and interesting text.

Don't overuse exclamation marks

Excessive exclamation marks make emails appear unprofessional and spam-like. 69% of recipients mark an email as spam after reading only the subject line. Messages with multiple exclamation marks in a row end up in the Spam folder first.

Do not include videos, flash videos or JavaScript in your email.

By default, most email clients do not allow you to view multimedia files, such as Flash movies or videos. Use a video player image and a link to the site. With JavaScript and others dynamic scripts the situation is more complicated. Even if the spam filter misses the message, the email client will block the scripts from working, so it is better to abandon them altogether.

Do not include a form in the email.

Most email clients do not support forms in email messages for security reasons. Include a CTA or link to your email landing page, where the form is located.

Don't attach attachments

If you want to send a file to clients (for example, in PDF format or Word), do not attach it to the letter. Otherwise, spam filters may respond to the message. Upload the document to your website and include a link in your message with an effective call to action. This way you will protect your email from being classified as spam and reduce the message loading time.

Don't use words that spam filters detect

Choose your words carefully when composing your email subject line. Filters respond to typical phrases that are used in advertising messages: “free”, “guaranteed”, etc. Be creative when writing emails: the email message should be interesting and informative.

Don't use red font

Red font or invisible text (white font on a white background) is often used by spammers. Spam filters immediately respond to such tricks. Unusual fonts and colors are not liked by subscribers. According to a study by the Radicati Group, more than 60% of users disapprove of the use of unusual fonts and different colors in newsletters. Almost 70% of users prefer characters to be the same size.

Don't make spelling mistakes

The Radicati Group study also found that 80% of subscribers consider spelling errors unacceptable. In addition, errors are a signal for spam filters. Be careful and don't forget to check your spelling using special tools.

Don't overuse keywords

Don't try to insert as much into the text as possible. keywords. Nobody wants to read messages optimized for robots. Such emails have a good chance of ending up in the Spam folder. The text should be personalized, informative and friendly. Feel free to write in simple and lively language.
A good example is an email from the American fitness center chain Turnstyle Cycle. “We would like to remind you that your subscription will expire soon. We know that you are busy and do not want to part with you. Call us if we can be of any assistance." A sincere and friendly message gives everything necessary information: date when the subscription expires and telephone number to contact.

Images should not be too large and there should not be many of them.

Image-heavy emails often end up in the Spam folder and are slow to open. Besides, Microsoft Outlook doesn't recognize background images. Instead of a picture, use a background color.

Update and clean your mailing list

Even if all your subscribers have agreed to the newsletter, do not forget about sheet hygiene. Otherwise, the Internet service provider may consider that you are sending spam. Providers take complaints into account active subscribers and do not pay attention to the size of the base.

Email addresses that no one has used for a long time often become spam traps. Falling into even one of these traps will have a negative impact on your deliverability.

Regular database hygiene reduces the likelihood that the mailing will be marked as spam. Inactive subscribers and unused addresses can be calculated by analyzing open rates, CTR and activity on the site.

Try to re-engage subscribers who are inactive or irregular

Sending messages to inactive subscribers negatively impacts deliverability. Messages from senders with low deliverability often end up in the Spam folder and are simply not seen by recipients.
Conduct reactivation campaigns. Track user behavior (website visits, link clicks, etc.) and create a trigger email message that will be sent if the subscriber is inactive for a certain time. For example, customers might be interested in an exclusive offer or a discount coupon. Another option is to include a link to a survey in your message so subscribers can tell them what they can expect from the newsletter.

Use double opt-in subscriptions

Double opt-in means that after subscribing, the user receives a “confirm” email with a special link. By clicking on it, the subscriber confirms his consent to the newsletter. As a rule, users who have confirmed their subscription are more active and engaged.

Ask subscribers to add your from email to their address book

IN Lately filters become stricter, and often letters that are interesting to subscribers end up in the spam folder. But most filters allow you to add an address to " White list" Remind subscribers about this opportunity so that they don’t miss your email messages.

Add an unsubscribe link to your email

The ability to easily unsubscribe is an important part of email marketing. It will allow people who do not want to receive the newsletter to opt out. In some countries (for example, the USA), the law obliges marketers to include an unsubscribe link in emails. According to American law, a subscriber must be able to unsubscribe by sending an email or clicking on one link. Users are accustomed to unsubscribe information being located at the bottom of the letter.


Don't ignore unsubscribing

b his address from the database. Automating this process will save a lot of time. At the same time, it is necessary to ensure full integration of the CRM and the software that is used to create mailings.

Indicate a familiar name in the "Sender" field

Many people do not open emails from unknown senders. Use your brand name to let your followers know who they are receiving messages from. Even better - send a newsletter with email address real person. Users trust personal email more than corporate email.

Enter the subscriber's name in the "To" field

This will show that you know the recipient's name and help avoid the spam filter. Plus, personalization increases customer engagement.

Offer two versions of the letter: without formatting and in HTML format

HTML makes it possible to create emails with attractive visual elements. If you simultaneously offer a text version of the email without formatting, you make life easier for both ISPs and subscribers. Most modern tools make it possible to create a text version of a letter in a few minutes.

When working with HTML, do not forget to check the correct encoding. Due to errors in tags, the email provider may consider the email to be spam.

Give subscribers the ability to view your message in a browser

Email clients sometimes render emails poorly, even if their design is impeccable. Be sure to include a link in your message that will allow you to open it as a web page.


Add text to images

Many email clients block images by default. The recipient will not see them until he clicks a button or changes his mailbox settings. Alt text will help the user understand the message even if the image does not open.

It's especially bad if you're using an image as a call to action. Without the alt text it looks like this:

If you add text, the subscriber will understand which link to follow to complete the action.

You can change the text in the rich text editor (just click right click mouse) or enter text manually in an HTML editor.

Emails should be short

Long text activates spam filters and drives away subscribers. Try to write concise and lively email messages. If you cannot do without a long letter, divide the text into paragraphs and achieve a clear structure (introduction, body and conclusion).

Test emails before sending

When creating a newsletter, you need to take into account the features of different email clients and mobile devices. Today, 53% of users read emails on mobile devices. Testing email campaigns for every email client would take too much time, but the most popular email clients are definitely worth checking out. Litmus specialists examined 1.06 billion emails and identified the most common email clients:

  • iPhone email app (28% of users);
  • Gmail (16% of users);
  • email app for iPad (11% of users);
  • mail application for Google Android(9% of users);
  • Outlook (9% of users).

If possible, see how the letter looks in different mail clients and on devices popular with your target audience.
Before sending a message to subscribers, be sure to conduct testing to make sure that the newsletter works well.

Complete Sender Certification

Sender certification is a process in which a third party verifies email senders and confirms that they follow certain rules. As a result, the sender ends up in the “white list of the Internet provider.”

Monitor your reputation

The deliverability of the newsletter largely depends on the reputation of the IP address. If the IP address from which you send messages has a bad reputation, there is a risk that they will not make it to Inbox. Make sure your address is not on the blacklist.

Try to stay up to date with new anti-spam laws, ISP regulations, and how spam filters work.

Email marketing is constantly changing, and professionals must keep their finger on the pulse: comply with new laws, adapt to new regulations and use advanced technologies.

Marketers spend a lot of time writing email copy, creating beautiful templates and conversion themes - all for the sake of high open and click rates. However, before sending, it’s worth considering how likely it is that subscribers will receive the email. In recent years, anti-spam laws have been tightened in many countries, and spam filters have become increasingly sophisticated. Today we will share the secrets of getting into Inbox.

Don't buy email address databases

Buying a mailing list is a bad idea. Firstly, this practice is contrary to the agreement with the email provider. Secondly, potential recipients don’t know anything about your company, haven’t subscribed, and are likely to mark the emails as spam. In addition, as a rule, low-quality addresses are sold.

Do not collect open email addresses from websites

Collecting open emails from websites is a quick way to grow your database, but it does not allow you to send effective emails. In some countries (eg the USA) this practice is illegal.

Remove email addresses that regularly send delivery error messages

A hard delivery error means that the email was sent to an incorrect or non-existent email address. The hard delivery error rate is one of the key factors that ISPs use to determine sender reputation. If you have a lot of these errors, your mailings will end up in the spam folder.

Don't write in capital letters

Writing entire words in capital letters is like yelling at people. Of course, the capital font attracts attention. But it irritates many people and does not inspire confidence, because it is often used to send spam.
According to a study by the Radicati Group, more than 85% of users prefer the subject line of emails to be in lowercase letters. Effective alternatives to Caps Lock include personalization, relevant content, and interesting text.

Don't overuse exclamation marks

Excessive exclamation marks make emails appear unprofessional and spam-like. 69% of recipients mark an email as spam after reading only the subject line. Messages with multiple exclamation points in a row end up in the Spam folder first.

Do not include videos, flash videos or JavaScript in your email.

By default, most email clients do not allow you to view multimedia files, such as Flash movies or videos. Use a video player image and a link to the site. With JavaScript and other dynamic scripts the situation is more complicated. Even if the spam filter misses the message, the email client will block the scripts from working, so it is better to abandon them altogether.

Do not include a form in the email.

Most email clients do not support forms in email messages for security reasons. Include a CTA in your email or a link to the landing page where the form is located.

Don't attach attachments

If you want to send a file to clients (for example, in PDF or Word format), do not attach it to the email. Otherwise, spam filters may respond to the message. Upload the document to your website and include a link in your message with an effective call to action. This way you will protect your email from being classified as spam and reduce the message loading time.

Don't use words that spam filters detect

Choose your words carefully when composing your email subject line. Filters respond to typical phrases that are used in advertising messages: “free”, “guaranteed”, etc. Be creative when writing emails: the email message should be interesting and informative.

Don't use red font

Red font or invisible text (white font on a white background) is often used by spammers. Spam filters immediately respond to such tricks. Unusual fonts and colors are not liked by subscribers. According to a study by the Radicati Group, more than 60% of users do not approve of the use of unusual fonts and different colors in emails. Almost 70% of users prefer characters to be the same size.

Don't make spelling mistakes

The Radicati Group study also found that 80% of subscribers consider spelling errors unacceptable. In addition, errors are a signal for spam filters. Be careful and don't forget to check your spelling using special tools.

Don't overuse keywords

Don't try to insert as many keywords into the text as possible. Nobody wants to read messages optimized for robots. Such emails have a good chance of ending up in the Spam folder. The text should be personalized, informative and friendly. Feel free to write in simple and lively language.
A good example is an email from the American fitness center chain Turnstyle Cycle. “We would like to remind you that your subscription will expire soon. We know that you are busy and do not want to part with you. Call us if we can be of any assistance." A sincere and friendly message gives all the necessary information: the date when the subscription expires and a telephone number to contact.

Images should not be too large and there should not be many of them.

Image-heavy emails often end up in the Spam folder and are slow to open. Additionally, Microsoft Outlook does not recognize background images. Instead of a picture, use a background color.

Update and clean your mailing list

Even if all your subscribers have agreed to the newsletter, do not forget about sheet hygiene. Otherwise, the Internet service provider may consider that you are sending spam. Providers take into account complaints from active subscribers and do not pay attention to the size of the base.

Email addresses that no one has used for a long time often become spam traps. Falling into even one of these traps will have a negative impact on your deliverability.

Regular database hygiene reduces the likelihood that the mailing will be marked as spam. Inactive subscribers and unused addresses can be calculated by analyzing open rates, CTR, and site activity.

Try to re-engage subscribers who are inactive or irregular

Sending messages to inactive subscribers negatively impacts deliverability. Messages from senders with low deliverability often end up in the Spam folder and are simply not seen by recipients.
Conduct reactivation campaigns. Track user behavior (website visits, link clicks, etc.) and create a trigger email message that will be sent if the subscriber is inactive for a certain time. For example, customers might be interested in an exclusive offer or a discount coupon. Another option is to include a link to a survey in your message so subscribers can tell them what they can expect from the newsletter.

Use double opt-in subscriptions

Double opt-in means that after subscribing, the user receives a “confirm” email with a special link. By clicking on it, the subscriber confirms his consent to the newsletter. As a rule, users who have confirmed their subscription are more active and engaged.

Ask subscribers to add your from email to their address book

Recently, filters have become stricter, and often letters that are interesting to subscribers end up in the spam folder. But most filters allow you to add an address to the white list. Remind subscribers about this opportunity so that they don’t miss your email messages.

Add an unsubscribe link to your email

The ability to easily unsubscribe is an important part of email marketing. It will allow people who do not want to receive the newsletter to opt out. In some countries (for example, the USA), the law obliges marketers to include an unsubscribe link in emails. According to American law, a subscriber must be able to unsubscribe by sending an email or clicking on one link. Users are accustomed to unsubscribe information being located at the bottom of the letter.


Don't ignore unsubscribing

b his address from the database. Automating this process will save a lot of time. At the same time, it is necessary to ensure full integration of the CRM and the software that is used to create mailings.

Indicate a familiar name in the "Sender" field

Many people do not open emails from unknown senders. Use your brand name to let your followers know who they are receiving messages from. It’s even better to send your newsletter from a real person’s email address. Users trust personal email more than corporate email.

Enter the subscriber's name in the "To" field

This will show that you know the recipient's name and help avoid the spam filter. Plus, personalization increases customer engagement.

Offer two versions of the letter: without formatting and in HTML format

HTML makes it possible to create emails with attractive visual elements. If you simultaneously offer a text version of the email without formatting, you make life easier for both ISPs and subscribers. Most modern tools make it possible to create a text version of a letter in a few minutes.

When working with HTML, do not forget to check the correct encoding. Due to errors in tags, the email provider may consider the email to be spam.

Give subscribers the ability to view your message in a browser

Email clients sometimes render emails poorly, even if their design is impeccable. Be sure to include a link in your message that will allow you to open it as a web page.


Add text to images

Many email clients block images by default. The recipient will not see them until he clicks a button or changes his mailbox settings. Alt text will help the user understand the message even if the image does not open.

It's especially bad if you're using an image as a call to action. Without the alt text it looks like this:

If you add text, the subscriber will understand which link to follow to complete the action.

You can edit the text in a rich text editor (just a right-click) or enter the text manually in an HTML editor.

Emails should be short

Long text activates spam filters and drives away subscribers. Try to write concise and lively email messages. If you cannot do without a long letter, divide the text into paragraphs and achieve a clear structure (introduction, body and conclusion).

Test emails before sending

When creating a newsletter, you need to take into account the features of different email clients and mobile devices. Today, 53% of users read emails on mobile devices. Testing email campaigns for every email client would take too much time, but the most popular email clients are definitely worth checking out. Litmus specialists examined 1.06 billion emails and identified the most common email clients:

  • iPhone email app (28% of users);
  • Gmail (16% of users);
  • email app for iPad (11% of users);
  • mail application for Google Android (9% of users);
  • Outlook (9% of users).

If possible, see how the email looks in different email clients and devices popular with your target audience.
Before sending a message to subscribers, be sure to conduct testing to make sure that the newsletter works well.

Complete Sender Certification

Sender certification is a process in which a third party verifies email senders and confirms that they follow certain rules. As a result, the sender ends up in the “white list of the Internet provider.”

Monitor your reputation

The deliverability of the newsletter largely depends on the reputation of the IP address. If the IP address from which you send messages has a bad reputation, there is a risk that they will not make it to Inbox. Make sure your address is not on the blacklist.

Try to stay up to date with new anti-spam laws, ISP regulations, and how spam filters work.

Email marketing is constantly changing, and professionals must keep their finger on the pulse: comply with new laws, adapt to new regulations and use advanced technologies.







2024 gtavrl.ru.