{"id":2132,"date":"2011-04-11T13:00:22","date_gmt":"2011-04-11T11:00:22","guid":{"rendered":"http:\/\/blogs.wittwer.fr\/whiler\/?p=2132"},"modified":"2012-03-03T04:26:00","modified_gmt":"2012-03-03T03:26:00","slug":"email-delphi-gmail","status":"publish","type":"post","link":"https:\/\/blogs.wittwer.fr\/whiler\/2011\/04\/11\/email-delphi-gmail\/","title":{"rendered":"Envoyer un email en utilisant Delphi et GMail"},"content":{"rendered":"<p>Juste une petite proc\u00e9dure qui me permettra d&rsquo;envoyer des emails depuis une application \u00e9crite avec <a target=\"_blank\" href=\"https:\/\/www.embarcadero.com\/fr\/products\/delphi\">Delphi<\/a> si j&rsquo;en ai \u00e9ventuellement besoin un jour.<\/p>\n<p>Cette proc\u00e9dure est bas\u00e9e sur les explications et exemples du <a target=\"_blank\" href=\"https:\/\/www.marcocantu.com\/tips\/oct06_gmail.html\">blog de Marco Cant\u00f9<\/a>.<\/p>\n<p>Je l&rsquo;ai test\u00e9e avec succ\u00e8s et j&rsquo;esp\u00e8re que cela ne changera pas si je m&rsquo;en sers un jour&#8230;<\/p>\n<p>Voici son code&nbsp;:<\/p>\n<p><!--more--><\/p>\n<div class=\"codecolorer-container delphi dawn\" style=\"overflow:auto;white-space:nowrap;width:480px;height:300px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/>36<br \/>37<br \/>38<br \/>39<br \/>40<br \/>41<br \/>42<br \/>43<br \/><\/div><\/td><td><div class=\"delphi codecolorer\"><span class=\"kw1\">procedure<\/span> SendEmail<span class=\"br0\">&#40;<\/span>sTo<span class=\"sy1\">,<\/span> sSubject<span class=\"sy1\">,<\/span> sText<span class=\"sy1\">:<\/span> <span class=\"kw4\">string<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">const<\/span><br \/>\n&nbsp; GMAIL_ACCOUNT &nbsp;<span class=\"sy3\">=<\/span> <span class=\"st0\">'******@gmail.com'<\/span><span class=\"sy1\">;<\/span> <span class=\"co1\">\/\/ Votre compte GMail<\/span><br \/>\n&nbsp; GMAIL_PASSWORD <span class=\"sy3\">=<\/span> <span class=\"st0\">'******'<\/span><span class=\"sy1\">;<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"co1\">\/\/ Votre mot de passe GMail<\/span><br \/>\n&nbsp; GMAIL_HOST &nbsp; &nbsp; <span class=\"sy3\">=<\/span> <span class=\"st0\">'smtp.gmail.com'<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; GMAIL_PORT &nbsp; &nbsp; <span class=\"sy3\">=<\/span> <span class=\"nu0\">587<\/span><span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">var<\/span><br \/>\n&nbsp; crPrevious <span class=\"sy1\">:<\/span> TCursor<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSSLGMail <span class=\"sy1\">:<\/span> TIdSSLIOHandlerSocketOpenSSL<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">:<\/span> TIdSMTP<span class=\"sy1\">;<\/span><br \/>\n&nbsp; email &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span> TIdMessage<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">begin<\/span><br \/>\n&nbsp; crPrevious &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> Screen<span class=\"sy1\">.<\/span><span class=\"me1\">Cursor<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; Screen<span class=\"sy1\">.<\/span><span class=\"me1\">Cursor<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> crHourGlass<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; idSSLGMail &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TIdSSLIOHandlerSocketOpenSSL<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw1\">nil<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSSLGMail<span class=\"sy1\">.<\/span><span class=\"me1\">SSLOptions<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Method<\/span> &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> sslvTLSv1<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSSLGMail<span class=\"sy1\">.<\/span><span class=\"me1\">SSLOptions<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Mode<\/span> &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> sslmUnassigned<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; idSMTPGMail &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TIdSMTP<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw1\">nil<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">IOHandler<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> idSSLGMail<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">UseTLS<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> utUseExplicitTLS<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Host<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> GMAIL_HOST<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Port<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> GMAIL_PORT<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">UserName<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> GMAIL_ACCOUNT<span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Password<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> GMAIL_PASSWORD<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; email &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> TIdMessage<span class=\"sy1\">.<\/span><span class=\"me1\">Create<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw1\">nil<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; email<span class=\"sy1\">.<\/span><span class=\"me1\">From<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Address<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> GMAIL_ACCOUNT<span class=\"sy1\">;<\/span><br \/>\n&nbsp; email<span class=\"sy1\">.<\/span><span class=\"me1\">Recipients<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">EMailAddresses<\/span> <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> sTo<span class=\"sy1\">;<\/span><br \/>\n&nbsp; email<span class=\"sy1\">.<\/span><span class=\"me1\">Subject<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> sSubject<span class=\"sy1\">;<\/span><br \/>\n&nbsp; email<span class=\"sy1\">.<\/span><span class=\"me1\">Body<\/span><span class=\"sy1\">.<\/span><span class=\"me1\">Text<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> sText<span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Connect<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Send<\/span><span class=\"br0\">&#40;<\/span>email<span class=\"br0\">&#41;<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Disconnect<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; idSSLGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; idSMTPGMail<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n&nbsp; email<span class=\"sy1\">.<\/span><span class=\"me1\">Free<\/span><span class=\"sy1\">;<\/span><br \/>\n<br \/>\n&nbsp; Screen<span class=\"sy1\">.<\/span><span class=\"me1\">Cursor<\/span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy1\">:<\/span><span class=\"sy3\">=<\/span> crPrevious<span class=\"sy1\">;<\/span><br \/>\n<span class=\"kw1\">end<\/span><span class=\"sy1\">;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<div class=\"thanks_button_div\" \n                  style=\"float: right; margin-right: 10px; margin-top:10px;\"><div id=\"thanksButtonDiv_2132_1\" style=\"background-image:url(https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/thanks_compact_brown1.png); background-repeat:no-repeat; float: left; display: inline;\"\n                onmouseover=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_2132_1', true);\" \n                onmouseout=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_2132_1', false);\"\n                onclick=\"javascript:thankYouChangeButtonImage('thanksButtonDiv_2132_1', false);\" >\n                <input type=\"button\" onclick=\"thankYouButtonClick(2132, 'You left &ldquo;Thanks&rdquo; already for this post')\" value=\"Merci\u00a0 25\"\n                  class=\"thanks_button thanks_compact thanks_brown1\"\n                  style=\"  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#00f;\"\n                  id=\"thanksButton_2132_1\" title=\"Click to leave &ldquo;Thanks&rdquo; for this post\"\/>\n             <\/div><div id=\"ajax_loader_2132_1\" style=\"display:inline;visibility: hidden;\"><img decoding=\"async\" alt=\"ajax loader\" src=\"https:\/\/blogs.wittwer.fr\/whiler\/wp-content\/plugins\/thanks-you-counter-button\/images\/ajax-loader.gif\" \/><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Juste une petite proc\u00e9dure qui me permettra d\u2019envoyer des emails depuis une application \u00e9crite avec Delphi si j\u2019en ai \u00e9ventuellement besoin un jour.<\/p>\n<p>Cette proc\u00e9dure est bas\u00e9e sur les explications et exemples du blog de Marco Cant\u00f9.<\/p>\n<p>Je l&rsquo;ai test\u00e9e avec succ\u00e8s et j&rsquo;esp\u00e8re que cela ne changera pas si je m&rsquo;en sers un jour&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7,6],"tags":[27,154,108],"class_list":["post-2132","post","type-post","status-publish","format-standard","hentry","category-delphi","category-dev","tag-coloration-syntaxique","tag-delphi","tag-script"],"_links":{"self":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/2132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/comments?post=2132"}],"version-history":[{"count":0,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/posts\/2132\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/media?parent=2132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/categories?post=2132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.wittwer.fr\/whiler\/wp-json\/wp\/v2\/tags?post=2132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}