{"id":21646,"date":"2022-06-14T00:00:00","date_gmt":"2022-06-14T00:00:00","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/velocidad-envio-spam-2\/"},"modified":"2026-09-15T20:20:47","modified_gmt":"2026-09-15T20:20:47","slug":"velocidad-envio-spam-2","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/","title":{"rendered":"C\u00f3mo evitar el spam saliente"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Spam sucks. That\u2019s the long and short of it.<\/p>\n\n<p class=\"wp-block-paragraph\">We\u2019ve talked about how to identify and prevent spam, but what if you\u2019re part of the problem?<\/p>\n\n<p class=\"wp-block-paragraph\">We\u2019re talking about outbound spam exiting your email server. In this article, we\u2019ll go over what outbound spam is and how to fight outbound spam. Then, we\u2019ll dive into our machine learning tutorial on how to detect and prevent outbound spam.<\/p>\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-7713\"><p class=\"h5 m-0\" id=\"toc-title-7713\">\u00cdndice<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#what-is-outbound-spam\">What is outbound spam?<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#how-can-i-fight-outbound-spam\">How can I fight outbound spam?<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#how-can-i-prevent-outbound-spam-with-machine-learning\">How can I prevent outbound spam with machine learning?<\/a><a class=\"scrollme link-body-color\" href=\"#anchor_1-build-a-dataset\">1. Build a dataset<\/a><a class=\"scrollme link-body-color\" href=\"#anchor_2-fit-different-models-to-our-data\">2. Fit different models to our data<\/a><a class=\"scrollme link-body-color\" href=\"#anchor_3-validate-our-model\">3. Validate our model<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#wrapping-up\">Wrapping up<\/a><\/div><\/div><\/nav>\n<h2 class=\"wp-block-heading\">What is outbound spam?<\/h2>\n\n<p class=\"wp-block-paragraph\">Outbound spam is exactly what it sounds like: spam that exits your network and lands in the inbox of unsuspecting customers or subscribers. This happens when spammers infiltrate your network and exploit it to <a href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/como-entregar-emails\/\" target=\"_tabs\" rel=\"noopener noreferrer\">send spam<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Email service providers (ESPs) like Mailgun and businesses like you need to watch out for outbound messages considered spam because it can destroy your <a href=\"https:\/\/docs.google.com\/document\/u\/0\/d\/1Rx6655VHuCwCbLZILDs-OFDEPw_pxRHe2fJt9oxGtac\/edit\" target=\"_tabs\" rel=\"noopener noreferrer\">IP reputation<\/a> and lead to <a href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/como-eliminar-ip-dominio-lista-bloqueo-email\/\" target=\"_tabs\" rel=\"noopener noreferrer\">IP blocklisting<\/a>. This means that a recipient\u2019s internet service provider (ISP) has detected spammy behavior and has decided to block all messages, legitimate or not, that originate from your IP address.\u00a0<\/p>\n\n<p class=\"wp-block-paragraph\">This is terrible news for your email programs or marketing campaigns. After all, you need emails to <a href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/evitar-emails-vayan-spam\/\" target=\"_tabs\" rel=\"noopener noreferrer\">land in your subscriber\u2019s inbox<\/a> so they can <a href=\"https:\/\/www.mailgun.com\/es\/blog\/email\/como-mejorar-la-tasa-de-apertura-de-email\/\" target=\"_tabs\" rel=\"noopener noreferrer\">open your messages<\/a> and engage with your brand.<\/p>\n\n<h2 class=\"wp-block-heading\">How can I fight outbound spam?<\/h2>\n\n<p class=\"wp-block-paragraph\">Fighting outbound spam takes constant vigilance. For instance, you can use outbound spam filters. These filters installed in your own network can be configured to identify individual senders based on authentication protocols. This way, you can track who is sending emails on your network and identify spam-like behavior.<\/p>\n\n<h2 class=\"wp-block-heading\">How can I prevent outbound spam with machine learning?<\/h2>\n\n<p class=\"wp-block-paragraph\">Spam identification and prevention techniques usually rely on vigilant email users or third-party software. However, spam sometimes slips through the cracks because it\u2019s disguised. Spam doesn\u2019t always look like spam.<\/p>\n\n<p class=\"wp-block-paragraph\">Sometimes scammers pretend to be legitimate online retailers by using a fake website or a fake ad on a real shopping site. In these cases, both the email messages and embedded links will look legitimate even though they belong in your junk folder.<\/p>\n\n<p class=\"wp-block-paragraph\">How can we make spam detection better? At Mailgun, we believe in using machine learning to power everyday tasks, such as <a href=\"https:\/\/www.mailgun.com\/blog\/it-and-engineering\/machine-learning-for-everyday-tasks\/\" target=\"_tabs\" rel=\"noopener noreferrer\">parsing HTML quotations<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Below, we\u2019ll walk through how you can apply machine learning to build a model to detect spam. We\u2019ll start by building a dataset. Then, we\u2019ll try to fit different models to the data. Lastly, we\u2019ll validate our model. We used <a href=\"https:\/\/www.r-project.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">R<\/a> for our analysis, but you can use another tool like <a href=\"http:\/\/scikit-learn.org\/stable\/\" target=\"_tabs\" rel=\"noopener noreferrer\">scikit-learn<\/a>, <a href=\"http:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Weka<\/a>, or <a href=\"http:\/\/moa.cms.waikato.ac.nz\/\" target=\"_tabs\" rel=\"noopener noreferrer\">MOA<\/a>.<\/p>\n\n<h3 class=\"wp-block-heading\">1. Build a dataset<\/h3>\n\n<p class=\"wp-block-paragraph\">First, let\u2019s take a look at how spammers behave. We\u2019ll use their behavioral pattern to build a model to identify when our outgoing mail appears like spammy behavior.<\/p>\n\n<p class=\"wp-block-paragraph\">To differentiate between spam that looks legitimate and actually legitimate messages, we focused on the speed with which spammers send a particular amount of spam.<\/p>\n\n<p class=\"wp-block-paragraph\">We classified over 1000 email accounts and collected the following data:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><b>timepassed: <\/b>The time lapsed before an account starts sending messages<\/li>\n\n\n\n<li><b>time2send: <\/b>The time it takes an account to send a particular number of messages<\/li>\n\n\n\n<li><b>class: <\/b>Whether an account is legitimate or spam<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Here is a sample entry from our dataset:<\/p>\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    timepassed,time2send,class  rn252202,961501,legitimate  rn391006,11291,spam  rn...\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">It\u2019s just a CSV file.<\/p>\n\n<p class=\"wp-block-paragraph\">For the analysis, I was using\u00a0<a href=\"https:\/\/www.r-project.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">R<\/a>\u00a0but depending on your task and personal preferences you might use something else \u2013\u00a0<a href=\"http:\/\/scikit-learn.org\/stable\/\" target=\"_tabs\" rel=\"noopener noreferrer\">scikit-learn<\/a>,\u00a0<a href=\"http:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Weka<\/a>,\u00a0<a href=\"http:\/\/moa.cms.waikato.ac.nz\/\" target=\"_tabs\" rel=\"noopener noreferrer\">MOA<\/a>, etc.<\/p>\n\n<p class=\"wp-block-paragraph\">Two-thirds of the dataset were reserved for training and one third for validation:<\/p>\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                    x &lt;- read.csv(file=&quot;firstXmessages.csv&quot;, sep=&quot;,&quot;, head=TRUE)rnrn## pick rows classified as spamrnspam &lt;- x[x$class %in% c(&quot;spam&quot;), ]rnrn## shuffle the data pointsrntotalspam &lt;- nrow(spam)  rnspam &lt;- spam[sample(totalspam), ]rnrn## keep 1 \/ 3 for validation and 2 \/ 3 for trainingrnvalidatespamrows &lt;- totalspam \/ 3  rnvalidatespam &lt;- spam[sequence(validatespamrows), ]  rntrainspam &lt;- spam[validatespamrows + sequence(totalspam - validatespamrows), ]rnrn## repeat for legitimate domainsrnlegit &lt;- x[x$class == &quot;legitimate&quot;, ]  rntotallegit &lt;- nrow(legit)  rnlegit &lt;- legit[sample(totallegit), ]  rnvalidatelegitrows &lt;- totallegit \/ 3  rnvalidatelegit &lt;- legit[sequence(validatelegitrows), ]  rntrainlegit &lt;- legit[validatelegitrows + sequence(totallegit - validatelegitrows), ]rnrn## merge legitimate and spam datapoints together and shufflerntrain &lt;- rbind(trainspam, trainlegit)  rntrain &lt;- train[sample(nrow(train)), ]rnrnvalidate &lt;- rbind(validatespam, validatelegit)  rnvalidate &lt;- validate[sample(nrow(validate)), ]  rnvalidatex &lt;- subset(validate, select=-class)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">Now, we\u2019re ready to model our data.<\/p>\n\n<h3 class=\"wp-block-heading\">2. Fit different models to our data<\/h3>\n\n<p class=\"wp-block-paragraph\">After building our dataset, we tried out different models for classification analysis. Classification analysis identifies and assigns categories to a data collection to allow for more accurate analysis. In this case, we\u2019re trying to identify spam and legitimate emails.<\/p>\n\n<p class=\"wp-block-paragraph\">First, we tried the <a href=\"https:\/\/www.geeksforgeeks.org\/classifying-data-using-support-vector-machinessvms-in-r\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Support Vector Machines (SVM)<\/a> model with a linear kernel that transforms data in a linear form. The visualization plot below gives you a good understanding of the data points distribution:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4436\" width=\"1024\" height=\"565\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/svm-domains.png\" alt=\"Support Vector Machines graph\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/svm-domains.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/svm-domains-300x166.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/svm-domains-768x424.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Support Vector Machines model with a linear kernel showing the distribution of spam and legitimate emails.<\/em><\/figcaption><\/figure>\n\n<p class=\"wp-block-paragraph\">The X-axis is \u201ctime to send\u201d and the Y-axis is \u201ctime lapsed before sending\u201d. Red marks indicate spam email data points, and black marks indicate legitimate email data points. From this chart, it seems that spammers start sending sooner and send faster.<\/p>\n\n<p class=\"wp-block-paragraph\">However, this model didn\u2019t pass validation. We\u2019ll talk more about validation in the next section. For now, let\u2019s talk about the second model we tried: <a href=\"http:\/\/www.statmethods.net\/advstats\/cart.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Classification And Regression Tree (CART)<\/a>.<\/p>\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    library(rpart)rnrn## grow tree rnfit &lt;- rpart(train$class ~., method=&quot;class&quot;, data=train)rnrn## plot tree rnplot(fit, uniform=TRUE,  rn      main=&quot;Classification Tree for how fast spammers send&quot;)rntext(fit, use.n=TRUE, all=TRUE, cex=.8)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4134\" width=\"1424\" height=\"425\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/image4.png\" alt=\"Classification and regression tree model\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/image4.png 1424w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/image4-300x90.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/image4-768x229.png 768w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/image4-1024x306.png 1024w\" sizes=\"(max-width: 1424px) 100vw, 1424px\" \/><figcaption class=\"wp-element-caption\"><em>Classification And Regression Tree model for spam and legitimate emails.<\/em><\/figcaption><\/figure>\n\n<p class=\"wp-block-paragraph\">This looks promising. When each stated condition is true, we move to the left branch. As you can see, as <b>time2send<\/b> increases, so do the fraction of legitimate emails. The opposite is true for spam emails, similar to what we saw in the SVM model above.<\/p>\n\n<p class=\"wp-block-paragraph\">Let\u2019s validate our model in the next section below.<\/p>\n\n<h3 class=\"wp-block-heading\">3. Validate our model<\/h3>\n\n<p class=\"wp-block-paragraph\">We want to assess our model using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Precision_and_recall\" target=\"_tabs\" rel=\"noopener noreferrer\">Precision and Recall<\/a> performance metrics.<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"440\" height=\"800\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2022\/06\/image.png\" alt=\"Diagrama que define la Precisi\u00f3n como los elementos relevantes entre los seleccionados, y el Recuerdo como los elementos seleccionados entre los elementos relevantes\" class=\"wp-image-11421\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2022\/06\/image.png 440w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2022\/06\/image-165x300.png 165w\" sizes=\"(max-width: 440px) 100vw, 440px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\"><i>Precision and Recall explainer (<\/i><a href=\"https:\/\/en.wikipedia.org\/wiki\/Precision_and_recall\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>source<\/i><\/a><i>)<\/i><\/p>\n\n<p class=\"wp-block-paragraph\">\u201cPrecision\u201d refers to the fraction of relevant instances among the retrieved instances. This means we can determine how high Spam Precision is based on the fraction of spam accounts among all the accounts retrieved by our model.<\/p>\n\n<p class=\"wp-block-paragraph\">\u201cRecall\u201d refers to the fraction of relevant instances that were retrieved. We can determine how high Spam Recall is based on the fraction of spam instances retrieved.<\/p>\n\n<p class=\"wp-block-paragraph\">To create a good spam filter, we can allow the occasional spam message, but we should not prevent any legitimate emails from being delivered. We want to focus on the following metrics for our model to ensure we can accurately distinguish between spam and legitimate emails:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><b>High Spam Precision <\/b>means that most accounts classified as spam are indeed spam.<\/li>\n\n\n\n<li><b>High Legitimate Recall<\/b> means that we don\u2019t misclassify legitimate accounts as spam.<\/li>\n\n\n\n<li><b>High Spam Recall<\/b> means that we catch the majority of spam accounts.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Below are the Precision and Recall metrics for our first SVM linear model:<\/p>\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    y &lt;- predict(fit, validatex, type=&quot;class&quot;)  rnconfusionmatrix &lt;- table(validate$class, y)  rnprint(Evaluate(cm=confusionmatrix))rnrnClass       Precision    Recall  rnlegitimate  0.7031250 0.6000000  rnspam        0.8814229 0.9214876\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">As you can see, we only have 60% Legitimate Recall. This is far too low.<\/p>\n\n<p class=\"wp-block-paragraph\">Let\u2019s see the validation for our second CART model:<\/p>\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copia al portapapeles\" data-clipboard-success-label=\"\u00a1Copiado!\" data-clipboard-error-label=\"No se ha podido copiar\" data-tooltip=\"Copia al portapapeles\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copia al portapapeles\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    Class       Precision    Recall  rnlegitimate  0.8333333 0.6666667  rnspam        0.9027237 0.9586777  rn\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n<p class=\"wp-block-paragraph\">The metrics look better, but Legitimate Recall still isn\u2019t very high.<\/p>\n\n<p class=\"wp-block-paragraph\">As a final step, we decided to see how our CART model fits into an SVM visualization chart, as shown below:<\/p>\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4437\" width=\"1024\" height=\"580\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/impl.png\" alt=\"CART model on SVM chart\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/impl.png 1024w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/impl-300x170.png 300w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/impl-768x435.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>SVM chart showing the CART model capturing most of the spam in the quadrants in the bottom left corner of the chart.<\/em><\/figcaption><\/figure>\n\n<p class=\"wp-block-paragraph\">The data points in emerged quadrants are pretty much all spam. This is what we needed: a simple model that would make sense and catch only spammers.<\/p>\n\n<p class=\"wp-block-paragraph\">This model is a rough first step to using machine learning to catch spam. The next step would be to add more features to our dataset. We encourage you to incorporate machine learning into your everyday tasks, like in this walkthrough.<\/p>\n\n<h2 class=\"wp-block-heading\">Wrapping up<\/h2>\n\n<p class=\"wp-block-paragraph\">We\u2019ve given you some tips on how to stop your outbound emails from being outbound spam. We\u2019ve also included a machine learning to model spam detection for advanced users as a bonus.<\/p>\n\n<p class=\"wp-block-paragraph\"><b>On the other side of the spam equation and finding that <\/b><a href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/como-entregar-emails\/\" target=\"_tabs\" rel=\"noopener noreferrer\"><b>your Mailgun email campaigns get lost<\/b><\/a><b> in your subscribers\u2019 spam folders? <\/b>Check out our blog post about <a href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/filtros-de-spam-de-buzones\/\" target=\"_tabs\" rel=\"noopener noreferrer\">staying on the good side of email providers<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfSab\u00edas que personas malintencionadas pueden utilizar tu red para enviar spam? Descubre qu\u00e9 es el email saliente y c\u00f3mo el aprendizaje autom\u00e1tico puede ayudarte a evitarlo.<\/p>\n","protected":false},"author":47,"featured_media":4376,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog_category":[21],"class_list":["post-21646","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-deliverability"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-15T20:20:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Deliverability.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/\",\"name\":\"Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Deliverability.png\",\"datePublished\":\"2022-06-14T00:00:00+00:00\",\"dateModified\":\"2026-09-15T20:20:47+00:00\",\"description\":\"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Deliverability.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Deliverability.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/deliverability\\\/velocidad-envio-spam-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo evitar el spam saliente\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun","description":"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/","og_locale":"es_ES","og_type":"article","og_title":"Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun","og_description":"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.","og_url":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-15T20:20:47+00:00","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Deliverability.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/","url":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/","name":"Qu\u00e9 es el spam saliente y c\u00f3mo evitarlo - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Deliverability.png","datePublished":"2022-06-14T00:00:00+00:00","dateModified":"2026-09-15T20:20:47+00:00","description":"No seas parte del problema: aprende a evitar el spam saliente mediante el filtrado de spam saliente. Como ventaja adicional, echa un vistazo a nuestro m\u00e9todo de aprendizaje autom\u00e1tico para detener el spam saliente.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Deliverability.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Deliverability.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/es\/blog\/deliverability\/velocidad-envio-spam-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/es\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/es\/blog\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo evitar el spam saliente"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/es\/#website","url":"https:\/\/www.mailgun.com\/es\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!","publisher":{"@id":"https:\/\/www.mailgun.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/es\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/es\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/21646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/users\/47"}],"version-history":[{"count":4,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/21646\/revisions"}],"predecessor-version":[{"id":22641,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/21646\/revisions\/22641"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media\/4376"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media?parent=21646"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog_category?post=21646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}