Public Access
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.
215 lines
7.1 KiB
HTML
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> •
|
|
<a href="https://odoo4projects.com/terms.html">Terms</a> •
|
|
<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;">© 2026 ODOO4projects LLC. All rights reserved.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|