{"id":6953,"date":"2025-12-28T19:13:35","date_gmt":"2025-12-28T18:13:35","guid":{"rendered":"https:\/\/olivier.hoarau.org\/?p=6953"},"modified":"2025-12-28T19:17:01","modified_gmt":"2025-12-28T18:17:01","slug":"migration-de-mon-site-funix-org-vers-loffre-de-scaleway","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=6953","title":{"rendered":"Migration de mon site Funix.org vers l&rsquo;offre de Scaleway"},"content":{"rendered":"\n<p>Comme annonc\u00e9 dans un <a href=\"https:\/\/olivier.hoarau.org\/?p=6940\">pr\u00e9c\u00e9dent post<\/a>  j&rsquo;\u00e9tais dans une impasse avec mon site et domaine<a href=\"https:\/\/www.funix.org\"> funix.org<\/a> avec une offre obsol\u00e8te d&rsquo;h\u00e9bergement web mutualis\u00e9 sur <strong>Dedibox\/Online.net <\/strong>en voie de disparition et je me posais la question de basculer \u00e9galement chez <a href=\"https:\/\/www.infomaniak.com\/fr\">Infomaniak<\/a> comme mon autre site et domaine <a href=\"https:\/\/www.hoarau.org\">hoarau.org<\/a>.<\/p>\n\n\n\n<p><strong>Online.net<\/strong> devenu <a href=\"https:\/\/www.scaleway.com\/fr\/\">Scaleway<\/a> me proposait de migrer vers une offre d&rsquo;h\u00e9bergement cloud et malgr\u00e9 mes r\u00e9ticences initiales, j&rsquo;ai choisi de migrer car finalement \u00e0 fonctionnalit\u00e9s plus ou moins \u00e9quivalentes \u00e7a restait moins cher chez <strong>Scaleway<\/strong> d&rsquo;autant plus que j&rsquo;ai b\u00e9n\u00e9fici\u00e9 de la migration de mes 5 adresses email sans co\u00fbt suppl\u00e9mentaire.<\/p>\n\n\n\n<p>La principale difficult\u00e9 rencontr\u00e9e lors de la migration et de remettre en place les serveurs <strong>IMAP<\/strong> de r\u00e9ception et <strong>SMTP<\/strong> d&rsquo;envoi de mail qui sont coupl\u00e9s pour l&rsquo;un \u00e0 <a href=\"https:\/\/www.funix.org\/fr\/linux\/index.php?ref=mail\">fetchmail et dovecot <\/a>et l&rsquo;autre au dinosaure <a href=\"https:\/\/www.funix.org\/fr\/linux\/index.php?ref=sendmail\">sendmail<\/a> sur mon serveur local. Pour la partie <strong>IMAP<\/strong> il a suffit de r\u00e9g\u00e9n\u00e9rer les mots de passe de mes comptes emails pour d&rsquo;indiquer le nouveau serveur <strong>IMAP<\/strong>. Pour la partie <strong>SMTP<\/strong>, \u00e7a a \u00e9t\u00e9 bien plus compliqu\u00e9 car du c\u00f4t\u00e9 <strong>scaleway<\/strong> il est annonc\u00e9 que seules les connexions chiffr\u00e9es et authentifi\u00e9es sur le port 465 sont accept\u00e9es. J&rsquo;ai d\u00fb modifier ainsi mon fichier<strong> \/etc\/mail\/auth\/clientinfo<\/strong> en y indiquant le nom du serveur <strong>SMTP<\/strong> et mon login de connexion<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">AuthInfo:serveur.smtp.scaleway &quot;U:root&quot; &quot;I:olivier.hoarau@funix.org&quot; &quot;P:password&quot; &quot;M:LOGIN&quot;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<!--more-->\n\n\n\n<p>et voil\u00e0 le fichier de configuration complet de <strong>sendmail<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">include(`..\/m4\/cf.m4&#039;)dnl<br\/>OSTYPE(`linux&#039;)dnl<br\/>FEATURE(redirect)dnl<br\/>FEATURE(nocanonify)dnl<br\/>FEATURE(always_add_domain)dnl<br\/>FEATURE(local_procmail)dnl<br\/>GENERICS_DOMAIN(ultra.kervao.fr ultra localhost)<br\/>FEATURE(genericstable)<br\/>FEATURE(masquerade_envelope)dnl<br\/>FEATURE(relay_entire_domain)dnl<br\/>FEATURE(accept_unresolvable_domains)dnl<br\/>define(`confDOMAIN_NAME&#039;,`scaleway.com&#039;)dnl<br\/>define(`SMTP_MAILER_FLAGS&#039;,`e9&#039;)dnl<br\/>define(`confCON_EXPENSIVE&#039;, `True&#039;)dnl<br\/>define(`confME_TOO&#039;, `True&#039;)dnl<br\/>define(`confCF_VERSION&#039;, `Sendmail de FUNIX&#039;)dnl<br\/>define(`confCOPY_ERRORS_TO&#039;, `Postmaster&#039;)dnl<br\/>define(`confDEF_CHAR_SET&#039;, `UTF-8&#039;)dnl<br\/>define(`confMIME_FORMAT_ERRORS&#039;, `True&#039;)dnl<br\/>define(`SMART_HOST&#039;, `[serveur.mail.scaleway]&#039;)dnl<br\/>define(`RELAY_MAILER_ARGS&#039;, `TCP $h 25&#039;)dnl<br\/>define(`ESMTP_MAILER_ARGS&#039;, `TCP $h 25&#039;)dnl<br\/>define(`confAUTH_OPTIONS&#039;, `A p&#039;)dnl<br\/>TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN&#039;)dnl<br\/>define(`confAUTH_MECHANISMS&#039;, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN&#039;)dnl<br\/>FEATURE(`authinfo&#039;,`hash -o \/etc\/mail\/auth\/clientinfo.db&#039;)dnl<br\/>define(`confRECEIVED_HEADER&#039;, `from scaleway.com <br\/>        by scaleway.com ($v\/$Z)$?r with $r$. id $i$?u<br\/>        for $u; $|;<br\/>        $.$b&#039;)<br\/>define(`confTO_QUEUEWARN&#039;, `24h&#039;)dnl<br\/>MAILER(local)<br\/>MAILER(smtp)<br\/>Kpirateo hash -o \/etc\/mail\/pirateo<br\/>LOCAL_RULE_0<br\/>R$  &lt; @ $  &gt; $* $: &lt; $(pirateo $1 @ $2 $: $) &gt; $1 &lt; @ $2 &gt; $3<br\/>R&lt; $  &gt; $  &lt; @ $  &gt; $*  $@ $&gt;97 $1<br\/>R&lt;&gt; $  &lt; @ $  &gt; $*      $: $1 &lt; @ $2 &gt; $3<br\/>INPUT_MAIL_FILTER(`clmilter&#039;, `S=local:\/var\/log\/clamav\/clmilter.sock, F=, T=S:4m;R:4m&#039;)dnl<br\/>INPUT_MAIL_FILTER(`spamassassin&#039;, `S=local:\/var\/run\/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m&#039;)dnl<br\/>define(`confMILTER_MACROS_CONNECT&#039;,`t, b, j, _, {daemon_name}, {if_name}, {if_addr}&#039;)dnl<br\/>define(`confMILTER_MACROS_HELO&#039;,`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}&#039;)dnl<br\/>define(`confMILTER_MACROS_ENVFROM&#039;,`i, {auth_authen}, {auth_type}&#039;)dnl<br\/>define(`confMILTER_MACROS_ENVRCPT&#039;,`r, v, Z&#039;)dnl<br\/>define(`confINPUT_MAIL_FILTERS&#039;, `clmilter,spamassassin&#039;)dnl<br\/>define(`confCACERT_PATH&#039;, `\/etc\/pki\/tls\/certs&#039;)dnl<br\/>define(`confCACERT&#039;, `\/etc\/pki\/tls\/certs\/ca-bundle.crt&#039;)dnl<br\/>define(`confSERVER_CERT&#039;, `\/etc\/pki\/tls\/sendmail_certificate.pem&#039;)dnl<br\/>define(`confSERVER_KEY&#039;, `\/etc\/pki\/tls\/private\/sendmail_key.pem&#039;)dnl<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Et voil\u00e0 ce qu&rsquo;un envoi de mail avec connexion avec la commande  <strong>sendmail -q -v <\/strong>donne (pour des consid\u00e9rations de s\u00e9curit\u00e9, j&rsquo;ai modifi\u00e9 ou mis des X pour cacher certains caract\u00e8res et informations)<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">Running \/var\/spool\/mqueue\/5BSCIRTD1785153 (sequence 1 of 1)<br\/>&lt;olivier.hoarau@gmail.com&gt;... Connecting to serveur.smtp.scaleway port 25 via relay...<br\/>220-XX-XXX.XXX.fr-par.scw.cloud ESMTP Exim 4.99 #2 Sun, 28 Dec 2025 13:18:32  0100 <br\/>220-We do not authorize the use of this system to transport unsolicited, <br\/>220 and\/or bulk e-mail.<br\/>&gt;&gt;&gt; EHLO scaleway.com<br\/>250-XX-XXX.XXX.fr-par.scw.cloud Hello XX.XXX.XX.XXX.rev.sfr.net [XXX.XX.XXX.XX]<br\/>250-SIZE 52428800<br\/>250-LIMITS MAILMAX=1000 RCPTMAX=50000<br\/>250-8BITMIME<br\/>250-PIPELINING<br\/>250-PIPECONNECT<br\/>250-STARTTLS<br\/>250 HELP<br\/>&gt;&gt;&gt; STARTTLS<br\/>220 TLS go ahead<br\/>&gt;&gt;&gt; EHLO scaleway.com<br\/>250-XX-XXX.XXX.fr-par.scw.cloud Hello XX.XXX.XX.XXX.rev.sfr.net [XXX.XX.XXX.XX]<br\/>250-SIZE 52428800<br\/>250-LIMITS MAILMAX=1000 RCPTMAX=50000<br\/>250-8BITMIME<br\/>250-PIPELINING<br\/>250-PIPECONNECT<br\/>250-AUTH PLAIN LOGIN<br\/>250 HELP<br\/>&gt;&gt;&gt; AUTH LOGIN<br\/>334 VXNlcm5hbWU6<br\/>&gt;&gt;&gt; XXXXXXXllcf5ob2FyYXVAZnVuaXgub3Jn<br\/>334 XXXXXX3dvcmQ6<br\/>&gt;&gt;&gt; XXXXXXX90b25lMjk\/<br\/>235 Authentication succeeded<br\/>&gt;&gt;&gt; MAIL From:&lt;olivier.hoarau@funix.org&gt; SIZE=1032 BODY=7BIT<br\/>250 OK<br\/>&gt;&gt;&gt; RCPT To:&lt;olivier.hoarau@gmail.com&gt;<br\/>&gt;&gt;&gt; DATA<br\/>250 Accepted<br\/>354 Enter message, ending with &quot;.&quot; on a line by itself<br\/>&gt;&gt;&gt; .<br\/>250 OK id=1vZpjF-0000000EQnQ-1Yhn<br\/>&lt;olivier.hoarau@gmail.com&gt;... Sent (OK id=1vZpjF-0000000EQnQ-1Yhn)<br\/>Closing connection to serveur.smtp.scaleway.<br\/>&gt;&gt;&gt; QUIT<br\/>221 XX-XXX.XXX.fr-par.scw.cloud closing connection<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>En d\u00e9taillant \u00e9tape par \u00e9tape<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Connexion au serveur SMTP de scaleway<\/strong><\/li>\n<\/ol>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">Connecting to serveur.smtp.scaleway. port 25 via relay...<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p><strong>Sendmail<\/strong> se connecte sur le port 25  du serveur <strong>SMTP<\/strong> d\u00e9fini par le param\u00e8tre <strong>SMART_HOST<\/strong>. Il n&rsquo;utilise pas le port 465 comme annonc\u00e9 par <strong>scaleway<\/strong> et je n&rsquo;ai pas besoin d&rsquo;utiliser un outil suppl\u00e9mentaire comme <a href=\"https:\/\/www.stunnel.org\/\">stunnel<\/a>. <\/p>\n\n\n\n<p>2. <strong>STARTTLS activ\u00e9<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&gt;&gt;&gt; STARTTLS<br\/>220 TLS go ahead<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>La connexion est chiffr\u00e9e gr\u00e2ce \u00e0 <strong>STARTTLS<\/strong> et c&rsquo;est sans doute pour cela que je peux me connecter au serveur.<\/p>\n\n\n\n<p>3. <strong>Authentification r\u00e9ussie<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&gt;&gt;&gt; AUTH LOGIN<br\/>235 Authentication succeeded<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Le serveur distant accepte le login et mot de passe tels que d\u00e9finis dans le fichier <strong>clientinfo<\/strong>.<\/p>\n\n\n\n<p>4. <strong>Mail accept\u00e9<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&gt;&gt;&gt; MAIL From:&lt;olivier.hoarau@funix.org&gt; ...<br\/>&gt;&gt;&gt; RCPT To:&lt;olivier.hoarau@gmail.com&gt;<br\/>&gt;&gt;&gt; DATA<br\/>250 OK id=1vZpjF-0000000EQnQ-1Yhn<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Le message est relay\u00e9 correctement, la queue <strong>sendmail<\/strong> se vide sans erreur 550 (adresse du destinataire rejet\u00e9e) ou 503 (serveur indisponible).<\/p>\n\n\n\n<p>5. <strong>Fermeture propre<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">&gt;&gt;&gt; QUIT<br\/>221 XX-XXX.XXX.fr-par.scw.cloud closing connection<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Pour le reste mon site <a href=\"https:\/\/www.funix.org\">funix.org<\/a> est maintenant \u00e0 nouveau accessible, j&rsquo;ai encore juste un point \u00e0 r\u00e9gler avec la directive <strong>PHP<\/strong> suivante qu&rsquo;il ne comprend pas.<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">$lang = Locale::acceptFromHttp($_SERVER[&#039;HTTP_ACCEPT_LANGUAGE&#039;]);<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Il me reste \u00e9galement \u00e0 d\u00e9couvrir la richesse offerte par la console <strong>cpanel scaleway<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme annonc\u00e9 dans un pr\u00e9c\u00e9dent post j&rsquo;\u00e9tais dans une impasse avec mon site et domaine funix.org avec une offre obsol\u00e8te d&rsquo;h\u00e9bergement web mutualis\u00e9 sur Dedibox\/Online.net en voie de disparition et je me posais la question de basculer \u00e9galement chez Infomaniak comme mon autre site et domaine hoarau.org. Online.net devenu Scaleway me proposait de migrer vers &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=6953\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Migration de mon site Funix.org vers l&rsquo;offre de Scaleway<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[5,12,10],"tags":[112],"class_list":["post-6953","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres","category-vie-de-funix","category-vie-de-mes-sites","tag-scaleway"],"share_on_mastodon":{"url":"https:\/\/mastodon.social\/@funix\/115798547881467337","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-1O9","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6953"}],"version-history":[{"count":5,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6953\/revisions"}],"predecessor-version":[{"id":6958,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/6953\/revisions\/6958"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}