Maison développement back-end tutoriel php 发送mime邮件类_PHP

发送mime邮件类_PHP

Jun 01, 2016 pm 12:37 PM
name th 发送 邮件

if(basename($PHP_SELF)== "class.html_mime_mail.inc")
{
  include  "fileinfo.inc";
  echo  "

<br>
    如果不含圖檔:<br>
     \$mail = new html_mime_mail();<br>
     \$html =\"HTML內容\";<br>
     \$mail->add_html(\$html, \$text);<br>
     \$mail->build_message();<br>
     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>
<br>
    <hr><br>
    如果含圖檔:<br>
    \$url=\"www.cuti.com.my/AD/\";    //圖檔位?FONT color="#007700">} ?FONT color="#007700">}頭無http:// 結尾有斜線<br>
    \$path=\"/MAIL/AD/\";    //圖檔路徑 結尾有斜線<br>
<br>
    \$filename1 = 'a.jpg';<br>
    \$backgrnd1 = fread(\$fp = fopen(\$path.\$filename1, 'r'), filesize(\$path.\$filename1));<br>
    fclose(\$fp);<br>
    ...依此類推...<br>
    \$filename6 = 'f.gif';<br>
        \$backgrnd6 = fread(\$fp = fopen(\$path.\$filename6, 'r'), filesize(\$path.\$filename6));<br>
        fclose(\$fp);<br>
    <br>
    \$mail->add_html_image(\$backgrnd1,\$filename1,'image/jpeg','http://'.\$url.\$filename1);<br>
    ...依此類推...<br>
    \$mail->add_html_image(\$backgrnd6,\$filename6,'image/gif','http://'.\$url.\$filename6);<br>
<br>
     \$mail = new html_mime_mail();<br>
     \$html =\"HTML含圖內容\";<br>
     \$mail->add_html(\$html, \$text);<br>
     \$mail->build_message();<br>
     \$mail->send(收信人,收信Email,發信人,發信Email,標題,額外Header);<br>
  ";<br>
        <br>
}<br>
/***************************************<br>
** Title.........: HTML Mime Mail class<br>
** Version.......: 1.26<br>
** Author........: Richard Heyes <richard.heyes><br>
** Filename......: html_mime_mail.class<br>
** Last changed..: 25/06/2000<br>
** Notes.........: Based upon mime_mail.class<br>
**                 by Tobias Ratschiller <tobias><br>
**                 and Sascha Schumann <sascha>.<br>
**                  - Thanks to Thomas Flemming for supplying a fix<br>
**                    for Win32.<br>
**                  - Made headers terminated by CRLF instead of LF, now<br>
**                    compliant with RFC822. Thanks to Pao-Hsi Huang.<br>
**                  - Fixed bug; certain mail systems (gmx.net in particular)<br>
**                    were rejecting mail because of a space character either<br>
**                    side of the equal sign on the boundary line. Thanks to<br>
**                    Peter Holm for notifying me.<br>
**                  - Fixed bug; $html_images was tested to be an array or not<br>
**                    but was set to be an array during object creation, so the<br>
**                    test always returned true. Thanks to Bob Silva for<br>
**                    notifying me.<br>
**                  - Fixed bug; when looping with $obj->send(), From: headers<br>
**                    were accumulating. Bummer. Thanks to Lance Rasmussen for<br>
**                    notifying me.<br>
**                  - See http://www.heyes-computing.net/scripts/ for a zip/tar<br>
**                    containing an example script.<br>
***************************************/ <br>
<br>
class html_mime_mail{<br>
<br>
        var $headers;<br>
        var $body;<br>
        var $multipart;<br>
        var $mime;<br>
        var $html;<br>
        var $html_text;<br>
        var $html_images = array();<br>
        var $cids = array();<br>
        var $do_html;<br>
        var $parts = array();<br>
<br>
/***************************************<br>
** Constructor function. Sets the headers<br>
** if supplied.<br>
***************************************/ <br>
        function html_mime_mail($headers =  '){<br>
                $this->headers = $headers;<br>
        }<br>
<br>
/***************************************<br>
** Adds a html part to the mail.<br>
** Also replaces image names with<br>
** content-id's.<br>
***************************************/ <br>
        function add_html($html, $text){<br>
                $this->do_html = 1;<br>
                $this->html = $html;<br>
                $this->html_text = $text;<br>
                if(is_array($this->html_images) AND count($this->html_images) > 0){<br>
                 /*      for($i=0; $i<count>html_images); $i++){<br>
                                $this->html = ereg_replace($this->html_images[$i]['name'], 'cid:'.$this->html_images[$i]['cid'], $this->html);<br>
                        }<br>
        */ <br>
                }<br>
        }<br>
<br>
/***************************************<br>
** Builds html part of email.<br>
***************************************/ <br>
        function build_html($orig_boundary){<br>
                $sec_boundary =  '=_'.md5(uniqid(time()));<br>
                $thr_boundary =  '=_'.md5(uniqid(time()));<br>
<br>
                if(count($this->html_images) == 0){<br>
                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>
<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n\n";<br>
                        $this->multipart.= $this->html_text. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>
                        $this->multipart.= $this->html. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
<br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>
                        $this->multipart.=  '--'.$sec_boundary. "--\n\n";<br>
                }else{<br>
                        $this->multipart.=  '--'.$orig_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/related;'.chr(10).chr(9). 'boundary="'.$sec_boundary. "\"\n\n\n";<br>
<br>
                        $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: multipart/alternative;'.chr(10).chr(9). 'boundary="'.$thr_boundary. "\"\n\n\n";<br>
<br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/plain'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html_text)). "\n\n";<br>
<br>
// ttj added below <br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n\n";<br>
                        $this->multipart.= $this->html. "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
// ttj added above <br>
<br>
                        $this->multipart.=  '--'.$thr_boundary. "\n";<br>
                        $this->multipart.=  'Content-Type: text/html'. "\n";<br>
                        $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $this->multipart.= chunk_split(base64_encode($this->html)). "\n\n";<br>
                        $this->multipart.=  '--'.$thr_boundary. "--\n\n";<br>
<br>
                        for($i=0; $i<count>html_images); $i++){<br>
                                $this->multipart.=  '--'.$sec_boundary. "\n";<br>
                                $this->build_html_image($i);<br>
                        }<br>
<br>
                        $this->multipart.=  "--".$sec_boundary. "--\n\n";<br>
                }<br>
        }<br>
/***************************************<br>
** Adds an image to the list of embedded<br>
** images.<br>
***************************************/ <br>
        function add_html_image($file, $name =  ', $c_type= 'application/octet-stream', $location= '){<br>
                $this->html_images[] = array(  'body' => $file,<br>
                                               'name' => $name,<br>
                                               'c_type' => $c_type,<br>
                           'location' => $location,<br>
                                               'cid' => md5(uniqid(time())) );<br>
        }<br>
<br>
<br>
/***************************************<br>
** Adds a file to the list of attachments.<br>
***************************************/ <br>
        function add_attachment($file, $name =  ', $c_type= 'application/octet-stream'){<br>
                $this->parts[] = array(  'body' => $file,<br>
                                         'name' => $name,<br>
                                         'c_type' => $c_type );<br>
        }<br>
<br>
/***************************************<br>
** Builds an embedded image part of an<br>
** html mail.<br>
***************************************/ <br>
        function build_html_image($i){<br>
                $this->multipart.=  'Content-Type: '.$this->html_images[$i][ 'c_type'];<br>
<br>
                if($this->html_images[$i][ 'name'] !=  ') $this->multipart .=  '; name="'.$this->html_images[$i][ 'name']. "\"\n";<br>
                else $this->multipart .=  "\n";<br>
<br>
                $this->multipart.=  'Content-Transfer-Encoding: base64'. "\n";<br>
        $this->multipart.=  'Content-Location:'.$this->html_images[$i][ 'location']. "\n";<br>
                $this->multipart.=  'Content-ID: html_images[$i][ 'cid']. ">\n\n";<br>
                $this->multipart.= chunk_split(base64_encode($this->html_images[$i][ 'body'])). "\n";<br>
        }<br>
<br>
/***************************************<br>
** Builds a single part of a multipart<br>
** message.<br>
***************************************/ <br>
        function build_part($i){<br>
                $message_part =  ';<br>
                $message_part.=  'Content-Type: '.$this->parts[$i][ 'c_type'];<br>
                if($this->parts[$i][ 'name'] !=  ')<br>
                        $message_part .=  '; name="'.$this->parts[$i][ 'name']. "\"\n";<br>
                else<br>
                        $message_part .=  "\n";<br>
<br>
                 // Determine content encoding. <br>
                if($this->parts[$i][ 'c_type'] ==  'text/plain'){<br>
                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n\n";<br>
                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>
                }else{<br>
                        $message_part.=  'Content-Transfer-Encoding: base64'. "\n";<br>
                        $message_part.=  'Content-Disposition: attachment; filename="'.$this->parts[$i][ 'name']. "\"\n\n";<br>
                        $message_part.= chunk_split(base64_encode($this->parts[$i][ 'body'])). "\n";<br>
                }<br>
<br>
                return $message_part;<br>
        }<br>
<br>
/***************************************<br>
** Builds the multipart message from the<br>
** list ($this->parts).<br>
***************************************/ <br>
        function build_message(){<br>
                $boundary =  '=_'.md5(uniqid(time()));<br>
<br>
                $this->headers.=  "MIME-Version: 1.0\n";<br>
                $this->headers.=  "Content-Type: multipart/mixed;".chr(10).chr(9). "boundary=\"".$boundary. "\"\n";<br>
                $this->multipart =  ';<br>
//                $this->multipart.= "This is a MIME encoded message.\nCreated by html_mime_mail.class.\nSee http://www.heyes-computing.net/scripts/ for a copy.\n\n"; <br>
<br>
                if(isset($this->do_html) AND $this->do_html == 1) $this->build_html($boundary);<br>
                if(isset($this->body) AND $this->body !=  ') $this->parts[] = array( 'body' => $this->body,  'name' =>  ',  'c_type' =>  'text/plain');<br>
<br>
                for($i=(count($this->parts)-1); $i>=0; $i--){<br>
                        $this->multipart.=  '--'.$boundary. "\n".$this->build_part($i);<br>
                }<br>
<br>
                $this->mime = $this->multipart. "--".$boundary. "--\n";<br>
        }<br>
<br>
/***************************************<br>
** Sends the mail.<br>
***************************************/ <br>
        function send($to_name, $to_addr, $from_name, $from_addr, $subject =  ', $headers =  '){<br>
<br>
                if($to_name !=  ') $to =  '"'.$to_name. '" ';<br>
                else $to = $to_addr;<br>
<br>
                if($from_name !=  ') $from =  '"'.$from_name. '" ';<br>
                else $from = $from_addr;<br>
<br>
                mail($to, $subject, $this->mime,  'From: '.$from. "\n".$headers. "\n".$this->headers);<br>
        }<br>
<br>
/***************************************<br>
** Use this method to deliver using direct<br>
** smtp connection. Relies upon Manuel Lemos'<br>
** smtp mail delivery class available at:<br>
** http://phpclasses.upperdesign.com<br>
**<br>
** void smtp_send( string *Name* of smtp object,<br>
**                 string From address,<br>
**                 array  To addresses,<br>
**                 string Subject)<br>
***************************************/ <br>
        function smtp_send($smtp_obj, $from_addr, $to_addr, $subject){<br>
                global $$smtp_obj;<br>
                $smtp_obj = $$smtp_obj;<br>
<br>
                $this->headers .=  'From: '.$from_addr. "\n";<br>
                $this->headers .=  'Subject: '.$subject. "\n";<br>
<br>
                if(substr($this->headers, -2) ==  "\n") $this->headers = substr($this->headers,0,-2);<br>
                $this->headers = explode( "\n", $this->headers);<br>
<br>
                $smtp_obj->sendmessage($from_addr, $to_addr, $this->headers, $this->mime);<br>
        }<br>
<br>
}  // End of class. <br>
?><br>

                
					
		
		
		
    </count></count></sascha></tobias></richard.heyes>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

E-mails Outlook perdus du panneau de configuration dans Windows 11 E-mails Outlook perdus du panneau de configuration dans Windows 11 Feb 29, 2024 pm 03:16 PM

L'icône de messagerie Outlook est-elle absente du panneau de configuration de Windows 11 ? Cette situation inattendue a semé la confusion et l'inquiétude chez certaines personnes qui comptent sur OutlookMail pour leurs besoins de communication. Pourquoi mes e-mails Outlook n'apparaissent-ils pas dans le Panneau de configuration ? Il peut y avoir plusieurs raisons possibles pour lesquelles il n'y a pas d'icônes de messagerie Outlook dans le Panneau de configuration : Outlook n'est pas installé correctement. L'installation des applications Office à partir du Microsoft Store n'ajoute pas l'applet Mail au Panneau de configuration. L'emplacement du fichier mlcfg32.cpl dans le Panneau de configuration est manquant. Le chemin d'accès au fichier mlcfg32.cpl dans le registre est incorrect. Le système d'exploitation n'est actuellement pas configuré pour exécuter cette application

PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. Sep 19, 2023 am 09:10 AM

PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. Introduction : Dans le développement Web, l'envoi d'e-mails est l'une des fonctions courantes. Cependant, comme l’envoi d’e-mails nécessite une communication avec le serveur, cela oblige souvent les utilisateurs à attendre longtemps avant que l’e-mail soit envoyé. Afin de résoudre ce problème, nous pouvons utiliser PHP pour envoyer des e-mails de manière asynchrone afin d'optimiser l'expérience utilisateur. Cet article présentera comment implémenter PHP pour envoyer des e-mails de manière asynchrone à travers des exemples de code spécifiques et éviter de longues attentes. 1. Comprendre l'envoi d'e-mails de manière asynchrone

Dites adieu au protocole Remote Mail Slot dans Windows 11 Dites adieu au protocole Remote Mail Slot dans Windows 11 Apr 14, 2023 pm 10:28 PM

Nous avons parlé ces derniers temps des nombreuses fonctionnalités que Microsoft envisage d'ajouter à son dernier système d'exploitation, Windows 11. Mais ne pensez pas que Microsoft n’ajoutera rien et ne retirera rien. En fait, le géant du logiciel a commencé à supprimer un certain nombre d’anciennes fonctionnalités. Après avoir annoncé son intention de mettre hors service la fonctionnalité MSDT avant la sortie de Windows 12, un développeur de Redmond a encore de mauvaises nouvelles. Nous parlons en fait d’un outil hérité de fente de messagerie distante. Faites-nous confiance lorsque nous disons que vous voulez réellement savoir cela. Microsoft a commencé à déprécier cette fonctionnalité dans la build 25314. Nous sommes sûrs que vous vous souvenez qu'il y a quelques jours à peine, Microsoft a publié la build 25314 dans son nouveau canal Canary. La version ci-dessus contient de nombreuses nouvelles fonctionnalités

Le publipostage Word imprime une page blanche Le publipostage Word imprime une page blanche Feb 19, 2024 pm 04:51 PM

Si vous constatez que des pages vierges apparaissent lors de l'impression d'un document de publipostage à l'aide de Word, cet article vous aidera. Le publipostage est une fonctionnalité pratique qui vous permet de créer facilement des documents personnalisés et de les envoyer à plusieurs destinataires. Dans Microsoft Word, la fonctionnalité de fusion et publipostage est très appréciée car elle permet aux utilisateurs de gagner du temps en copiant manuellement le même contenu pour chaque destinataire. Afin d'imprimer le document de publipostage, vous pouvez accéder à l'onglet Mailings. Mais certains utilisateurs de Word ont signalé que lorsqu'ils essayaient d'imprimer un document de publipostage, l'imprimante imprimait une page vierge ou n'imprimait pas du tout. Cela peut être dû à un formatage ou à des paramètres d'imprimante incorrects. Essayez de vérifier les paramètres du document et de l'imprimante et assurez-vous de prévisualiser le document avant de l'imprimer pour vous assurer que le contenu est correct. si

Conseils WhatsApp : comment envoyer des photos et des vidéos HD Conseils WhatsApp : comment envoyer des photos et des vidéos HD Sep 10, 2023 am 10:13 AM

WhatsApp a lancé une nouvelle option qui permet aux utilisateurs d'envoyer des photos et des vidéos en haute résolution via la plateforme de messagerie. Lisez la suite pour savoir comment procéder. WhatsApp a publié une mise à jour qui permet aux utilisateurs d'iPhone et d'Android d'envoyer des photos et des vidéos en haute résolution, répondant enfin aux limitations de partage multimédia de mauvaise qualité du service. L'option s'appelle « Qualité HD » et signifie que les utilisateurs peuvent envoyer des photos et des vidéos plus claires avec une compression minimale. Par exemple, les images capturées sur l'iPhone peuvent désormais être envoyées à une résolution de 3 024 x 4 032 au lieu du maximum précédent de 920 x 1 280, tandis que les vidéos peuvent être envoyées à une résolution de 1 280 x 718 au lieu de 848 x 476.

Comment envoyer des fichiers à d'autres sur TikTok ? Comment supprimer les fichiers que j'ai envoyés à d'autres ? Comment envoyer des fichiers à d'autres sur TikTok ? Comment supprimer les fichiers que j'ai envoyés à d'autres ? Mar 22, 2024 am 08:30 AM

Sur Douyin, les utilisateurs peuvent non seulement partager les détails de leur vie et leurs talents, mais également interagir avec d'autres utilisateurs. Dans ce processus, nous devons parfois envoyer des fichiers à d'autres utilisateurs, tels que des images, des vidéos, etc. Alors, comment envoyer des fichiers à d’autres sur Douyin ? 1. Comment envoyer des fichiers à d'autres sur Douyin ? 1. Ouvrez Douyin et entrez dans l'interface de discussion où vous souhaitez envoyer des fichiers. 2. Cliquez sur le signe « + » dans l'interface de discussion et sélectionnez « Fichier ». 3. Dans les options de fichiers, vous pouvez choisir d'envoyer des images, des vidéos, de l'audio et d'autres fichiers. Après avoir sélectionné le fichier que vous souhaitez envoyer, cliquez sur « Envoyer ». 4. Attendez que l'autre partie accepte votre fichier. Une fois que l'autre partie l'aura accepté, le fichier sera transféré avec succès. 2. Comment supprimer les fichiers envoyés à d'autres sur Douyin ? 1. Ouvrez Douyin et saisissez le texte que vous avez envoyé.

Comment résoudre le problème de courrier électronique Outlook bloqué dans la boîte d'envoi Comment résoudre le problème de courrier électronique Outlook bloqué dans la boîte d'envoi May 01, 2023 am 10:01 AM

Récemment, de nombreux utilisateurs ont signalé le problème du blocage des e-mails Outlook dans la boîte d'envoi. Même après plusieurs tentatives d'envoi de l'e-mail, le problème n'a pas été résolu. Lorsque vous voyez ce problème et vérifiez votre dossier de boîte d'envoi, le message y restera bloqué. Raisons possibles pour lesquelles les e-mails restent bloqués dans la boîte d'envoi Outlook : Les pièces jointes de l'e-mail dépassent la taille limite, ce qui ralentit le processus d'envoi. Problèmes d'authentification du compte Outlook avec le serveur de messagerie Paramètres d'envoi/réception incorrects dans Outlook ou hors connexion du serveur de messagerie Outlook. Les fichiers de données Outlook sont utilisés par d'autres logiciels. Un logiciel antivirus analyse les e-mails sortants. Si ce problème vous dérange et que vous ne parvenez pas à envoyer un e-mail

Un aperçu public sera bientôt disponible, comprenant la dernière application Outlook pour Windows 11 et Windows 10. Un aperçu public sera bientôt disponible, comprenant la dernière application Outlook pour Windows 11 et Windows 10. May 09, 2023 am 08:07 AM

Dans le cadre de la mise à jour des applications natives pour Windows 11, Microsoft prévoit de publier un nouveau Outlook. L'application a été conçue à partir de zéro et est actuellement en préparation pour une version préliminaire, qui sera probablement annoncée lors de l'événement hybride Windows 11 de Microsoft. Le projet s'appelle "ProjectMonarch" et ce nouveau Outlook est en développement depuis plus d'un an. Il s'agit d'une relance de l'application Web qui vise à unifier tous les clients de messagerie Windows existants tels que Mail et Calendrier ainsi que la version de bureau d'Outlook. Avec OutlookOne, Microsoft espère aider les utilisateurs à gérer leur courrier électronique sur différentes plates-formes de bureau. Il existe de nombreuses façons d'accéder

See all articles