Files
ODOO4projects.com/email/trial-confirmation.html
T
oliver 3c602d97be fix(seo): legal.html canonical, host-case normalisation, BlogPosting x15, blog body domain typo
Four follow-up defects found beyond the 2026-10-27 SEO audit (no copy changes):

1. legal.html canonical was https://ODOO4projects.com/legal — uppercase host AND a
   path that 404s. Now https://odoo4projects.com/legal.html. The file's og:url keeps
   its path /legal but its host is lowercased (path fix awaiting a decision).
2. The no-"4" domain typo in reader-visible <pre><code> body text of
   blog/posts/{guide-migrate-enterprise,speed-run-deploy,my-first-post}.html:
   odooprojects.com -> odoo4projects.com. Domain string only, no other wording.
3. Lowercase host in every machine-read value: the robots.txt Sitemap line, the
   homepage + de/ + es/ Organization JSON-LD url / contactPoint.url / offers[].url,
   legal.html og:url, and the four absolute self-URL hrefs in blog posts,
   odoo/support.html and email/trial-confirmation.html. Display text untouched
   (support@ODOO4projects.com stays as written).
4. One BlogPosting per blog post (15), every value taken from the page itself:
   headline = its <h1>, datePublished = its visible post-meta date, url = its own
   canonical, author/publisher = the Organization the site already publishes,
   image = its og:image where one exists (omitted on the 10 posts that have none).

Empire ">950.00", FAQPage on support.html, the blog-chrome change and the bootcamp
date conflict are untouched — decisions pending with the user.
2026-10-27 18:54:28 +00:00

215 lines
7.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Confirm your email to get your Odoo instance</title>
<style>
* { box-sizing: border-box; }
body {
margin: 0;
padding: 0;
background: #f4f0e8;
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.6;
color: #0d1b2e;
}
table { width: 100%; border-collapse: collapse; }
.container {
max-width: 600px;
margin: 0 auto;
background: #fff;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.header {
background: #0d1b2e;
color: #fff;
padding: 32px 24px;
text-align: center;
}
.brand {
font-family: Marcellus, serif;
font-size: 28px;
font-weight: 700;
letter-spacing: -0.5px;
margin: 0;
}
.content { padding: 32px 24px; }
h1 {
font-family: Marcellus, serif;
font-size: 26px;
margin: 0 0 16px 0;
color: #0d1b2e;
}
p { margin: 0 0 16px 0; color: #162a45; }
.highlight {
background: rgba(201,162,39,0.08);
padding: 12px 16px;
border-radius: 6px;
border-left: 3px solid #c9a227;
margin: 16px 0;
}
.cta {
display: inline-block;
background: #c9a227;
color: #fff;
padding: 14px 28px;
text-decoration: none;
border-radius: 6px;
font-weight: 600;
margin: 24px 0;
font-size: 16px;
}
.cta:hover { background: #b38f22; }
.steps { margin: 24px 0; }
.step {
display: flex;
align-items: flex-start;
margin-bottom: 16px;
}
.step-number {
background: #0d1b2e;
color: #fff;
width: 28px;
height: 28px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
margin-right: 12px;
flex-shrink: 0;
}
.step-content { flex: 1; }
.step h3 { margin: 0 0 4px 0; font-size: 16px; color: #0d1b2e; }
.step p { margin: 0; font-size: 14px; color: #162a45; }
.footer {
background: #f4f0e8;
padding: 24px;
border-top: 1px solid #e8e2d4;
font-size: 13px;
color: #162a45;
}
.footer p { margin: 0 0 8px 0; }
.footer a { color: #c9a227; text-decoration: underline; }
.support {
margin-top: 24px;
padding: 16px;
background: rgba(13,27,46,0.05);
border-radius: 6px;
text-align: center;
}
.support a { color: #0d1b2e; font-weight: 600; text-decoration: none; }
.support a:hover { text-decoration: underline; }
.unsubscribe { margin-top: 8px; color: #6b7b8c; }
.unsubscribe a { color: #6b7b8c; text-decoration: underline; }
@media (max-width: 600px) {
.container { border-radius: 0; }
.header { padding: 24px 16px; }
.content { padding: 24px 16px; }
h1 { font-size: 22px; }
.cta { padding: 12px 20px; font-size: 15px; }
}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center">
<table class="container" cellpadding="0" cellspacing="0" border="0">
<!-- Header -->
<tr>
<td class="header">
<h1 class="brand">ODOO4projects</h1>
<p style="font-size: 14px; margin-top: 8px; opacity: 0.85;">Odoo Community Managed Hosting</p>
</td>
</tr>
<!-- Main Content -->
<tr>
<td class="content">
<h1>Confirm your email to get your Odoo instance</h1>
<p>Thanks for signing up for the 30-day free trial of Odoo Community V20 hosting.</p>
<p>Your Odoo instance is waiting to be launched. Confirm your email address and we'll spin it up immediately.</p>
<!-- Confirmation CTA -->
<center>
<a class="cta" href="https://odoo4projects.com/trial/confirm?token=USER_TOKEN">Confirm Email</a>
</center>
<div class="highlight">
<strong>What happens next:</strong> We'll email your login credentials once your instance is ready.
</div>
<!-- Steps -->
<div class="steps">
<div class="step">
<div class="step-number">1</div>
<div class="step-content">
<h3>Confirm email</h3>
<p>Click the button above to verify your address and start your Odoo V20 instance.</p>
</div>
</div>
<div class="step">
<div class="step-number">2</div>
<div class="step-content">
<h3>Instance spins up</h3>
<p>We provision your Odoo Community V20 server automatically. Usually takes 2-5 minutes.</p>
</div>
</div>
<div class="step">
<div class="step-number">3</div>
<div class="step-content">
<h3>Login credentials</h3>
<p>We email your URL, username, and temporary password. You can change them right away.</p>
</div>
</div>
</div>
<p><strong>What you get in this trial:</strong></p>
<ul>
<li>An Odoo Community V20 instance, provisioned in a few minutes</li>
<li>Every app that ships with Odoo Community</li>
<li>Login credentials by email — one login, inside your Odoo</li>
</ul>
<p><strong>What the trial does not include:</strong></p>
<ul>
<li>Backups — the trial has none. Paid plans include them.</li>
<li>Domain mapping — your own domain needs a paid plan.</li>
<li>Module installation — custom and OCA modules install from On the Rise up.</li>
</ul>
<p>No credit card to start. You only need a card when you buy a plan.</p>
<div class="support">
<p>Questions? Reply to this email or contact us directly:</p>
<p><a href="mailto:support@odoo4projects.com">support@odoo4projects.com</a></p>
</div>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="footer">
<p><strong>ODOO4projects</strong> — Smart, scalable business solutions</p>
<p>
<a href="https://odoo4projects.com/privacy.html">Privacy</a> &bull;
<a href="https://odoo4projects.com/terms.html">Terms</a> &bull;
<a href="https://odoo4projects.com/support.html#contact">Contact</a>
</p>
<p class="unsubscribe">
<a href="https://odoo4projects.com/unsubscribe?token=USER_TOKEN">Unsubscribe</a> from these emails
</p>
<p style="margin-top: 8px; opacity: 0.7;">&copy; 2026 ODOO4projects LLC. All rights reserved.</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>