{"id":1531,"date":"2017-08-22T16:45:16","date_gmt":"2017-08-22T21:45:16","guid":{"rendered":"http:\/\/lisa.rushworth.us\/?p=1531"},"modified":"2026-05-15T14:01:14","modified_gmt":"2026-05-15T19:01:14","slug":"sendmail-configuration","status":"publish","type":"post","link":"https:\/\/www.rushworth.us\/lisa\/?p=1531","title":{"rendered":"Sendmail Configuration"},"content":{"rendered":"<p>Sendmail Configuration Files \u2013\u00a0sendmail.cf\u00a0and\u00a0sendmail.mc<\/p>\n<p>&nbsp;<\/p>\n<p>Sendmail configuration files are located by default in \/etc\/mail\/.\u00a0\u00a0PureMessage\u00a0uses \/opt\/pmx4\/sendmail\/etc\/mail\/<\/p>\n<p>&nbsp;<\/p>\n<p>The main configuration file is\u00a0sendmail.cf.\u00a0\u00a0This is a rather cryptic file which we will not configure directly.\u00a0\u00a0If you want to know the syntax for\u00a0sendmail.cf, read the doc at\u00a0<a href=\"http:\/\/www.sendmail.org\/\">http:\/\/www.sendmail.org<\/a>\u00a0or get the\u00a0O\u2019Reily\u00a0book.\u00a0\u00a0This information is specific to the MC file from which a macro builds the CF file..<\/p>\n<p>&nbsp;<\/p>\n<p>sendmail.mc\u00a0contains instructions to allow the M4 macro processor to build\u00a0sendmail.cf.\u00a0\u00a0Very important, before you can use a macro to create a\u00a0sendmail.cf\u00a0file, you need to have the macro installed.\u00a0\u00a0This is the sendmail package sendmail-cf.\u00a0\u00a0To ascertain if the package has been installed on RedHat:<\/p>\n<p>&nbsp;<\/p>\n<p>[root@LJLLX001 mail]#\u00a0<strong>rpm -qa\u00a0|\u00a0grep\u00a0sendmail<\/strong><\/p>\n<p>sendmail-8.13.1-2<\/p>\n<p>sendmail-cf-8.13.1-2<\/p>\n<p>&nbsp;<\/p>\n<p>Both sendmail and sendmail-cf\u00a0packages should appear in the results.\u00a0\u00a0If you do not have the CF package, install it.<\/p>\n<p>&nbsp;<\/p>\n<p>The text \u201cdnl\u201d within\u00a0sendmail.mc\u00a0denotes a comment \u2013 like a tic in\u00a0VisualBasic\u00a0or a hash in\u00a0perl.\u00a0\u00a0Many lines end with\u00a0dnl, or\u00a0dnl\u00a0with some type of commentary.\u00a0\u00a0Lines beginning with\u00a0dnl\u00a0are not processed.<\/p>\n<p>&nbsp;<\/p>\n<p>Common instructions within a\u00a0sendmail.mc\u00a0file:<\/p>\n<p>&nbsp;<\/p>\n<p>include(`\/usr\/share\/sendmail-cf\/m4\/cf.m4&#8242;)dnl<\/p>\n<p>This line refers the m4 utility to the correct \u201ctranslation\u201d to build the\u00a0sendmail.cf\u00a0file.\u00a0\u00a0Important that the line is at the top of the mc file, but nothing to do with sendmail configuration specifically<\/p>\n<p>&nbsp;<\/p>\n<p>VERSIONID(`setup for Red Hat Linux&#8217;)dnl<\/p>\n<p>This line is not required, and we have \u2018junk\u2019 in it frequently.\u00a0\u00a0It records the version of sendmail in the\u00a0cf\u00a0file for administrative reference.<\/p>\n<p>&nbsp;<\/p>\n<p>OSTYPE(`linux&#8217;)dnl<\/p>\n<p>More instructions for m4, different\u00a0OS\u2019s\u00a0have different locations for sendmail files and the OS defined here identifies which parameters to use.\u00a0\u00a0This line again needs to be at the top of the mc file<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confDEF_USER_ID&#8217;,&#8220;8:12&#8221;)dnl<\/p>\n<p>Defines which user and group sendmail will run as \u2013 do NOT pick root here.\u00a0\u00a0User id 8 (mail) and group id 12 (mail) from \/etc\/passwd\u00a0and \/etc\/groups respectively.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTO_CONNECT&#8217;, `1m&#8217;)dnl<\/p>\n<p>Time limit for SMTP connection timeout, set to one minute normally.\u00a0\u00a0This is how long your server will wait for an initial connect() to complete.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTRY_NULL_MX_LIST&#8217;,true)dnl<\/p>\n<p>Email is\u00a0<em>normally<\/em> routed by MX records.\u00a0\u00a0This instruction means the \u2018domain\u2019 can also be a host name with no MX defined.\u00a0\u00a0E.G.\u00a0\u00a0sending email to @example.com will return the MX records, as they exist.\u00a0\u00a0Attempting to email @myhost.example.com will return no MX records, but myhost will be contacted directly to attempt delivery.\u00a0\u00a0This is a most useful instruction for return delivery to system mailers.<\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>define(`confDONT_PROBE_INTERFACES&#8217;,true)dnl<\/p>\n<p>The sendmail class w lists the host and IP addresses for which sendmail accepts and takes local delivery.\u00a0\u00a0This class can be automatically populated, or using this directive not automatically populated.\u00a0\u00a0We configure this information manually in other files.<\/p>\n<p>&nbsp;<\/p>\n<p>You can use a sendmail command line to determine what\u00a0<em>is<\/em>\u00a0set to various system variables:<\/p>\n<p>[root@LJLLX001 ~]# sendmail -d0.1 -bv<\/p>\n<p>Version 8.13.1<\/p>\n<p>Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX<\/p>\n<p>MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6<\/p>\n<p>NETUNIX NEWDB\u00a0NIS\u00a0PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS<\/p>\n<p>USERDB USE_LDAP_INIT<\/p>\n<p>============ SYSTEM IDENTITY (after\u00a0readcf) ============<\/p>\n<p><strong>(short domain name) $w\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LJLLX001<\/strong><\/p>\n<p>(canonical domain name) $j\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LJLLX001.vibiant.dnsalias.com<\/p>\n<p>(subdomain\u00a0name) $m\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0vibiant.dnsalias.com<\/p>\n<p>(node name) $k\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LJLLX001.vibiant.com<\/p>\n<p>========================================================<\/p>\n<p>&nbsp;<\/p>\n<p>define(`PROCMAIL_MAILER_PATH&#8217;,`\/usr\/bin\/procmail&#8217;)dnl<\/p>\n<p>Exactly what it says \u2013 the location of\u00a0procmail<\/p>\n<p>&nbsp;<\/p>\n<p>define(`ALIAS_FILE&#8217;, `\/etc\/aliases&#8217;)dnl<\/p>\n<p>Location of the file for local delivery aliases \u2013 not something we use often as there are few local delivery accounts.\u00a0\u00a0In the ISP, this file can be used to give someone additional addresses which deliver to the same mailbox.\u00a0\u00a0This file can also be used to direct delivery of a local account to a program \u2013 in\u00a0PureMessage\u00a0for example, \/opt\/pmx4\/sendmail\/etc\/mail\/aliases directs the\u00a0pmx-auto-approve address to the application which releases user messages.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confBIND_OPTS&#8217;, `WorkAroundBrokenAAAA&#8217;)dnl<\/p>\n<p>This is a\u00a0resolver\u00a0option, it instructs sendmail to ignore SERVFAIL errors during an IPv6 lookup.\u00a0\u00a0We had a few domains for which we could not deliver mail without this directive.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`SMART_HOST&#8217;, `[192.168.1.53]&#8217;)<\/p>\n<p>A smart host can be used instead of direct mail delivery.\u00a0\u00a0For a server which is not meant to deliver mail to the internet (neohtwnlx824 for instance) the\u00a0smart_host\u00a0directive sends all mail to the defined destination.\u00a0\u00a0The destination can be a hostname or an IP address.\u00a0\u00a0Note, the\u00a0mailertable\u00a0will override the\u00a0smarthost.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`STATUS_FILE&#8217;, `\/var\/log\/mail\/statistics&#8217;)dnl<\/p>\n<p>Retains statistical information on server \u2013 use the command\u00a0mailstats\u00a0to output the statistics, the file created here is not text<\/p>\n<p>&nbsp;<\/p>\n<p>define(`UUCP_MAILER_MAX&#8217;, `2000000&#8242;)dnl<\/p>\n<p>Maximum size for messages relayed by UUCP mailers<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confPRIVACY_FLAGS&#8217;, `authwarnings,novrfy,noexpn,restrictqrun&#8217;)dnl<\/p>\n<p>Disables unwanted commands \u2013 usually for security reasons.\u00a0\u00a0EXPN expands groups into component members, for instance, so NOVRFY is used to disable the command.\u00a0\u00a0Some of these are more important if local delivery is handled by the sendmail server.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confAUTH_OPTIONS&#8217;, `A&#8217;)dnl<\/p>\n<p>What kinds of authentication are supported by the server.\u00a0\u00a0Useful if you are requiring authentication to relay mail, we do not do this.\u00a0\u00a0Some UNIX hosts get confused if AUTH is an option made available, and you need to remark this line out of the mc file.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTO_QUEUEWARN&#8217;, `6d&#8217;)dnl<\/p>\n<p>If you ever see an email from a destination mail server saying it is still trying to deliver your message and just wanted to let you know \u2013 that is what this interval defines.\u00a0\u00a0To truly adhere to RFC specifications, a sendmail server should continue to attempt delivery for at least four to five days.\u00a0\u00a0As a \u201cnice\u201d feature, the server can send periodic notifications to the sender that delivery has been delayed.\u00a0\u00a0This standard comes from a time when circuits were smaller and quite\u00a0lossy.\u00a0\u00a0It could reasonably take days to establish a connection to the destination and transmit a message.<\/p>\n<p>We are rogue and just return mail as undeliverable after a shorter period.\u00a0\u00a0No reason to notify users, but to ensure that a notification is not sent, we put the warning interval at something higher than the expiration interval.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTO_QUEUERETURN&#8217;, `12h&#8217;)dnl<\/p>\n<p>Related to the QUEUEWARN interval \u2013 this is the period after which the sendmail server considers the message undeliverable and returns it to the sender.\u00a0\u00a0By default, this is five days so we make sure to define something more reasonable.\u00a0\u00a0Otherwise there would be no way to identify \u201chigh\u201d mail queue counts for alerting.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confQUEUE_LA&#8217;, `16&#8242;)dnl<\/p>\n<p>Load average at which queue only functionality is engaged<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confREFUSE_LA&#8217;, `48&#8242;)dnl<\/p>\n<p>Load average at which SMTP connections are refused<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confDELAY_LA&#8217;, `30&#8242;)dnl<\/p>\n<p>Load average at which sendmail will delay one second on SMTP commands<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confMIN_QUEUE_AGE&#8217;, `5m&#8217;)dnl<\/p>\n<p>Minimum time a message has to sit in the queue before it is retried<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTO_HOSTSTATUS&#8217;, `2m&#8217;)dnl<\/p>\n<p>If a host has been denoted as unavailable, the status will be cached for this duration.\u00a0\u00a0After the interval expires, connection to the host will be retried<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confMAX_DAEMON_CHILDREN&#8217;, 2000)<\/p>\n<p>Maximum number of children processes permitted.\u00a0\u00a0Sendmail will reject subsequent connections once this number has been reached.\u00a0\u00a0Very important to have something defined on the DMZ servers.\u00a0\u00a0Default is infinite and it is possible for a server to become unresponsive and need to be rebooted with out of memory errors when too many processes are spawned.<\/p>\n<p>&nbsp;<\/p>\n<p>define(`confTO_IDENT&#8217;, `0&#8242;)dnl<\/p>\n<p>Timeout for responses to IDENT<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`no_default_msa&#8217;,`dnl&#8217;)dnl<\/p>\n<p>The default MSA options are not used, but rather explicitly defined in the DAEMON_OPTIONS directive<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`smrsh&#8217;,`\/usr\/sbin\/smrsh&#8217;)dnl<\/p>\n<p>Shell used for command line mailing programs, not really pertinent in our case<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`mailertable&#8217;,`hash\u00a0-o \/etc\/mail\/mailertable.db&#8217;)dnl<\/p>\n<p>This file will be discussed in more detail later, this directive specifies the use of a\u00a0mailertable\u00a0and the location of the file.<\/p>\n<p>&nbsp;<\/p>\n<p>VIRTUSER_DOMAIN_FILE(\/etc\/mail\/virtuser-domains)dnl<\/p>\n<p>This file will be discussed in more detail later, this directive specifies the location of the file containing virtualised domains<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`virtusertable&#8217;,`hash\u00a0-o \/etc\/mail\/virtusertable.db&#8217;)dnl<\/p>\n<p>This file will be discussed in more detail later, this directive specifies the use of virtual user mapping and the location of the file containing said mappings<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(always_add_domain)dnl<\/p>\n<p>Appends the local host domain to even locally delivered mail.<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(use_cw_file)dnl<\/p>\n<p>Alternate host names are in \/etc\/mail\/local-host-names \u2013 machine aliases<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(use_ct_file)dnl<\/p>\n<p>Users who can set alternate envelope from addresses without generating a warning message.\u00a0\u00a0File is \/etc\/mail\/trusted-users<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(local_procmail,`&#8217;,`procmail\u00a0-t -Y -a $h -d $u&#8217;)dnl<\/p>\n<p>Specifies program to use as the local mailer, and command options<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`access_db&#8217;,`hash\u00a0-T&lt;TMPF&gt; -o \/etc\/mail\/access.db&#8217;)dnl<\/p>\n<p>This file will be discussed in more detail later, this directive specifies the use of an access restriction table and the location of the file.<\/p>\n<p>&nbsp;<\/p>\n<p>EXPOSED_USER(`root&#8217;)dnl<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>DAEMON_OPTIONS(`Port=smtp, Name=MTA&#8217;)dnl<\/p>\n<p>This is where the settings for the MSA are defined.\u00a0\u00a0Port=smtp\u00a0uses the default port of 25, or an alternate port can be used.\u00a0\u00a0Addr=# can be included to bind sendmail to a specific address (including 127.0.0.1 for\u00a0localhost\u00a0access only).<\/p>\n<p>&nbsp;<\/p>\n<p>INPUT_MAIL_FILTER(`vamilter&#8217;,`S=inet:3333@localhost,F=R,T=S:10m;R:10m;E:10m&#8217;)<\/p>\n<p>Defines a \u201cmilter\u201d \u2013 mail filter.\u00a0\u00a0The port and destination of the\u00a0milter\u00a0must be included with S=.\u00a0\u00a0S=inet\u00a0is a IPv4 socket, S=inet6 is an IPv6 socket, and S=local is a Unix-domain socket (\/var\/run\/)<\/p>\n<p>F= defines an action to take on failure, R (reject), T (tempfail), or if no option is included just pass the message through sendmail and ignore the\u00a0milter<\/p>\n<p>T= defines timeouts for\u00a0sendmail\u2019s\u00a0communication with the\u00a0milter:<\/p>\n<p>C\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Connect timeout<\/p>\n<p>S\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Sending timeout (sendmail transmission of data to\u00a0milter)<\/p>\n<p>R\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Reading timeout (for reply from\u00a0milter)<\/p>\n<p>E\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Overall timeout (between sending end of message and final\u00a0ack)<\/p>\n<p>&nbsp;<\/p>\n<p>MASQUERADE_AS(`vibiant.dnsaliascom&#8217;)dnl<\/p>\n<p>FEATURE(`masquerade_envelope&#8217;)dnl<\/p>\n<p>FEATURE(`allmasquerade&#8217;)dnl<\/p>\n<p>MASQUERADE_DOMAIN(`arlitljl.com&#8217;)dnl<\/p>\n<p>MASQUERADE_DOMAIN(`homedomain.local\u2019)dnl<\/p>\n<p>This group of directives are all interrelated.\u00a0\u00a0Masquerading\u00a0is basically replacement \u2013 MASQUERADE_AS is the domain which will be used in place of the domains identified in MASQUERADE_DOMAIN lines.\u00a0\u00a0In this case, both @arlitljl.com and @homedomain.local\u00a0will be overwritten with @vibiant.dnsalias.com.\u00a0\u00a0The directive\u00a0<strong>FEATURE(masquerade_entire_domain)<\/strong>\u00a0could be included to replace any\u00a0subdomain\u00a0of the masquerade domains (e.g. @secured.arlitljl.com, @public.arlitljl.com, and @restricted.arlitljl.com in addition to @arlitljl.com)<\/p>\n<p>Masquerade envelope applies the masquerade to the envelope information and\u00a0allmasquerade\u00a0applies the masquerade to everything in the envelope, including cc:, from: and to: &#8212; this directive is important when we mask an acquired company\u2019s email domain with our own.<\/p>\n<p>&nbsp;<\/p>\n<p>FEATURE(`accept_unresolvable_domains&#8217;)dnl<\/p>\n<p>Allows the use of domains in the MAIL FROM command to be invalid network and sender domains.\u00a0\u00a0Since some people do not manage to configure their mail servers properly, we are less restrictive here to avoid complaints.<\/p>\n<p>&nbsp;<\/p>\n<p>LOCAL_DOMAIN(`localhost.localdomain&#8217;)dnl<\/p>\n<p>Domain(s) for which the server will accept local delivery \u2013 since our servers do not really deliver mail the domain should include the\u00a0localdomain\u00a0to prevent accidental misdirection of mail<\/p>\n<p>&nbsp;<\/p>\n<p>MAILER(smtp)dnl<\/p>\n<p>MAILER(procmail)dnl<\/p>\n<p>Defines mailers to be used in addition to local \u2013 these should be the last lines of the mc file<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>When you make changes to the\u00a0sendmail.mc\u00a0file, you will need to run the macro processor to update the CF file.\u00a0\u00a0You can see the results by running:<\/p>\n<p>m4\u00a0sendmail.mc\u00a0| less<\/p>\n<p>&nbsp;<\/p>\n<p>The text which will be used in\u00a0sendmail.cf\u00a0will be displayed on the screen.\u00a0\u00a0To actually commit the changes, use:<\/p>\n<p>m4\u00a0sendmail.mc\u00a0&gt;\u00a0sendmail.cf<\/p>\n<p>or just type<\/p>\n<p>make<\/p>\n<p>&nbsp;<\/p>\n<p>Make will update\u00a0<strong><em>all<\/em><\/strong>\u00a0of the files in \/etc\/mail, so ensure you like all the changes you have made, not just the changes to\u00a0sendmail.mc<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sendmail Configuration Files \u2013\u00a0sendmail.cf\u00a0and\u00a0sendmail.mc &nbsp; Sendmail configuration files are located by default in \/etc\/mail\/.\u00a0\u00a0PureMessage\u00a0uses \/opt\/pmx4\/sendmail\/etc\/mail\/ &nbsp; The main configuration file is\u00a0sendmail.cf.\u00a0\u00a0This is a rather cryptic file which we will not configure directly.\u00a0\u00a0If you want to know the syntax for\u00a0sendmail.cf, read the doc at\u00a0http:\/\/www.sendmail.org\u00a0or get the\u00a0O\u2019Reily\u00a0book.\u00a0\u00a0This information is specific to the MC file from which a &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[259],"class_list":["post-1531","post","type-post","status-publish","format-standard","hentry","category-system-administration","tag-sendmail"],"_links":{"self":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/1531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1531"}],"version-history":[{"count":2,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/1531\/revisions"}],"predecessor-version":[{"id":12230,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=\/wp\/v2\/posts\/1531\/revisions\/12230"}],"wp:attachment":[{"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rushworth.us\/lisa\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}