{"id":2590,"date":"2024-01-15T20:47:30","date_gmt":"2024-01-15T11:47:30","guid":{"rendered":"https:\/\/technologyagency.net\/wordpress\/?p=2590"},"modified":"2024-01-16T19:53:10","modified_gmt":"2024-01-16T10:53:10","slug":"oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84","status":"publish","type":"post","link":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/","title":{"rendered":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u6ce8\u610f<\/h2>\n\n\n\n<p>Microsoft Exchange\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u4f8b\uff1a@\u306e\u5f8c\u308d\u304c\u4f01\u696d\u540d\u3068\u304b\u72ec\u81ea\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\uff09\u3067\u306a\u3044\u3068SMTP\u306eOAuth\u8a8d\u8a3c\u3092\u6709\u52b9\u306b\u51fa\u6765\u306a\u3044\u3088\u3046\u306a\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u6301\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u8a73\u7d30\u306f\u308f\u304b\u3089\u306a\u3044\u3002<\/p>\n\n\n\n<p>\u500b\u4eba\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u3082\u3001Microsoft Entra\u3067\u30a2\u30d7\u30ea\u306e\u767b\u9332\u304c\u51fa\u6765\u308b\u306e\u3067\u3001\u30c8\u30fc\u30af\u30f3\u53d6\u5f97\u90e8\u5206\u3060\u3051\u52d5\u4f5c\u78ba\u8a8d\u3057\u305f\u3002Microsoft Exchange\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u3042\u308c\u3070\u3001\u901a\u3057\u3067\u3082\u591a\u5206\u52d5\u304f\u306f\u305a\u3002<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">build.gradle<\/h5>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"plugins {\n\tid 'java'\n}\n\ngroup = 'oauth2hotmail'\nversion = '0.0.1-SNAPSHOT'\n\njava {\n\tsourceCompatibility = '17'\n}\n\nconfigurations {\n\tcompileOnly {\n\t\textendsFrom annotationProcessor\n\t}\n}\n\nrepositories {\n\tmavenCentral()\n}\n\ndependencies {\n    implementation 'com.microsoft.azure:msal4j:1.14.2'\n    implementation 'com.sun.mail:jakarta.mail:2.0.1'\n}\n\ntasks.named('test') {\n\tuseJUnitPlatform()\n}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">plugins {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\tid <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">java<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">group <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">oauth2hotmail<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">version <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">0.0.1-SNAPSHOT<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">java {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\tsourceCompatibility <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">17<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">configurations {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\tcompileOnly {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\textendsFrom annotationProcessor<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">repositories {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\tmavenCentral<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dependencies {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    implementation <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">com.microsoft.azure:msal4j:1.14.2<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    implementation <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">com.sun.mail:jakarta.mail:2.0.1<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">tasks<\/span><span style=\"color: #81A1C1\">.<\/span><span style=\"color: #D8DEE9FF\">named<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">test<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\tuseJUnitPlatform<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">HotmailOAuth.java<\/h5>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"public class HotmailOAuth {\n\n    private static final String SCOPE = &quot;https:\/\/graph.microsoft.com\/.default&quot;;\n    \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3(\u30af\u30e9\u30a4\u30a2\u30f3\u30c8) ID\n    private static final String CLIENT_ID = &quot;&quot;;\n    \/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8 \u30b7\u30fc\u30af\u30ec\u30c3\u30c8\n    private static final String CLIENT_SECRET = &quot;&quot;;\n    \/\/ OAuth 2.0 \u30c8\u30fc\u30af\u30f3 \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8 (v2)\n    private static final String AUTHORITY = &quot;https:\/\/login.microsoftonline.com\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea(\u30c6\u30ca\u30f3\u30c8) ID\/oauth2\/v2.0\/token&quot;;\n    private static final String MAIL_FROM = &quot;sender@foo.bar&quot;;\n    private static final String MAIL_TO = &quot;receiver@foo.bar&quot;;\n\n    public static void main(String[] args) throws MalformedURLException, AddressException, MessagingException {\n        \/\/ \u30a2\u30af\u30bb\u30b9 \u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97\n        var token = getAccessTokenFromSecret();\n\n        \/\/ SMTP \u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\n        var props = new Properties();\n        props.put(&quot;mail.smtp.host&quot;, &quot;\u305d\u308c\u305e\u308c\u306eSMTP\u30db\u30b9\u30c8\u540d&quot;);\n        props.put(&quot;mail.smtp.port&quot;, &quot;587&quot;);\n        props.put(&quot;mail.smtp.auth&quot;, &quot;true&quot;);\n        props.put(&quot;mail.smtp.auth.mechanisms&quot;, &quot;XOAUTH2&quot;);\n        props.put(&quot;mail.smtp.starttls.enable&quot;, &quot;true&quot;);\n        var session = Session.getDefaultInstance(props);\n\n        \/\/ \u30e1\u30fc\u30eb\u3092\u4f5c\u6210\n        var message = new MimeMessage(session);\n        message.setFrom(new InternetAddress(MAIL_FROM));\n        message.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO));\n        message.setSubject(&quot;OAuth 2.0\u8a8d\u8a3c\u3092\u4f7f\u3063\u3066\u9001\u4fe1\u3057\u305f\u30e1\u30fc\u30eb&quot;);\n        message.setText(&quot;\u3053\u306e\u30e1\u30fc\u30eb\u306f\u3001OAuth 2.0 \u8a8d\u8a3c\u3092\u4f7f\u3063\u3066\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002&quot;);\n\n        \/\/ \u30e1\u30fc\u30eb\u3092\u9001\u4fe1\n        var transport = session.getTransport(&quot;smtp&quot;);\n        transport.connect(MAIL_FROM, token);\n        transport.sendMessage(message, message.getAllRecipients());\n        transport.close();\n\n        System.out.println(&quot;\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002&quot;);\n    }\n\n    public static String getAccessTokenFromSecret() throws MalformedURLException {\n      var credential = ClientCredentialFactory.createFromSecret(CLIENT_SECRET);\n\n      var cca = ConfidentialClientApplication\n              .builder(CLIENT_ID, credential)\n              .authority(AUTHORITY)\n              .build();\n\n      var parameters = ClientCredentialParameters\n              .builder(Set.of(SCOPE))\n              .build();\n\n      var result = cca.acquireToken(parameters).join();\n\n      return result.accessToken();\n    }\n}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">HotmailOAuth<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">SCOPE<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/graph.microsoft.com\/.default<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3(\u30af\u30e9\u30a4\u30a2\u30f3\u30c8) ID<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">CLIENT_ID<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8 \u30b7\u30fc\u30af\u30ec\u30c3\u30c8<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">CLIENT_SECRET<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ OAuth 2.0 \u30c8\u30fc\u30af\u30f3 \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8 (v2)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">AUTHORITY<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/login.microsoftonline.com\/\u30c7\u30a3\u30ec\u30af\u30c8\u30ea(\u30c6\u30ca\u30f3\u30c8) ID\/oauth2\/v2.0\/token<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">MAIL_FROM<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">sender@foo.bar<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">final<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">MAIL_TO<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">receiver@foo.bar<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">void<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">main<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">args<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">throws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MalformedURLException<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">AddressException<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MessagingException<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ \u30a2\u30af\u30bb\u30b9 \u30c8\u30fc\u30af\u30f3\u3092\u53d6\u5f97<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">token<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">getAccessTokenFromSecret<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ SMTP \u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">Properties<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mail.smtp.host<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u305d\u308c\u305e\u308c\u306eSMTP\u30db\u30b9\u30c8\u540d<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mail.smtp.port<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">587<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mail.smtp.auth<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">true<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mail.smtp.auth.mechanisms<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">XOAUTH2<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">props<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">put<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mail.smtp.starttls.enable<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">true<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">session<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Session<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">getDefaultInstance<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">props<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ \u30e1\u30fc\u30eb\u3092\u4f5c\u6210<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">MimeMessage<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">session<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">setFrom<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">InternetAddress<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">MAIL_FROM<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">setRecipient<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">Message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">RecipientType<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">TO<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">InternetAddress<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">MAIL_TO<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">setSubject<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">OAuth 2.0\u8a8d\u8a3c\u3092\u4f7f\u3063\u3066\u9001\u4fe1\u3057\u305f\u30e1\u30fc\u30eb<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">setText<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u3053\u306e\u30e1\u30fc\u30eb\u306f\u3001OAuth 2.0 \u8a8d\u8a3c\u3092\u4f7f\u3063\u3066\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ \u30e1\u30fc\u30eb\u3092\u9001\u4fe1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">transport<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">session<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">getTransport<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">smtp<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">transport<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">connect<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">MAIL_FROM<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> token<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">transport<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">sendMessage<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">message<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">message<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">getAllRecipients<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">transport<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">close<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">System<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">out<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">println<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">static<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">String<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">getAccessTokenFromSecret<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">throws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">MalformedURLException<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">credential<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ClientCredentialFactory<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">createFromSecret<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">CLIENT_SECRET<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cca<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ConfidentialClientApplication<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">builder<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">CLIENT_ID<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> credential<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">authority<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">AUTHORITY<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">parameters<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ClientCredentialParameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">builder<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">Set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">of<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">SCOPE<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">build<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">var<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">result<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cca<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">acquireToken<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">parameters<\/span><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #88C0D0\">join<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">result<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">accessToken<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6ce8\u610f Microsoft Exchange\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u4f8b\uff1a@\u306e\u5f8c\u308d\u304c\u4f01\u696d\u540d\u3068\u304b\u72ec\u81ea\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\uff09\u3067\u306a\u3044\u3068SMTP\u306eOAuth\u8a8d\u8a3c\u3092\u6709\u52b9\u306b\u51fa\u6765\u306a\u3044\u3088\u3046\u306a\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u6301\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u8a73\u7d30\u306f\u308f\u304b\u3089\u306a\u3044\u3002 \u500b\u4eba\u30a2 &hellip; <a href=\"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2590","post","type-post","status-publish","format-standard","hentry","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0\u3092\u4f7f\u7528\u3057\u3066-office365\u306esmtp\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.\" \/>\n<meta property=\"og:description\" content=\"\u6ce8\u610f Microsoft Exchange\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u4f8b\uff1a@\u306e\u5f8c\u308d\u304c\u4f01\u696d\u540d\u3068\u304b\u72ec\u81ea\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\uff09\u3067\u306a\u3044\u3068SMTP\u306eOAuth\u8a8d\u8a3c\u3092\u6709\u52b9\u306b\u51fa\u6765\u306a\u3044\u3088\u3046\u306a\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u6301\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u8a73\u7d30\u306f\u308f\u304b\u3089\u306a\u3044\u3002 \u500b\u4eba\u30a2 &hellip; &quot;OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044&quot; \u306e\u7d9a\u304d\u3092\u8aad\u3080\" \/>\n<meta property=\"og:url\" content=\"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0\u3092\u4f7f\u7528\u3057\u3066-office365\u306esmtp\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\/\" \/>\n<meta property=\"og:site_name\" content=\"I want to lead an easy life.\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-15T11:47:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-16T10:53:10+00:00\" \/>\n<meta name=\"author\" content=\"hide6644\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"hide6644\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/\"},\"author\":{\"name\":\"hide6644\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"headline\":\"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\",\"datePublished\":\"2024-01-15T11:47:30+00:00\",\"dateModified\":\"2024-01-16T10:53:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/\"},\"wordCount\":15,\"commentCount\":0,\"articleSection\":[\"Java\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/\",\"name\":\"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\"},\"datePublished\":\"2024-01-15T11:47:30+00:00\",\"dateModified\":\"2024-01-16T10:53:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2024\\\/01\\\/15\\\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\",\"name\":\"I want to lead an easy life.\",\"description\":\"Technical Notes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\",\"name\":\"hide6644\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"caption\":\"hide6644\"},\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/author\\\/hide6644\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0\u3092\u4f7f\u7528\u3057\u3066-office365\u306esmtp\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\/","og_locale":"ja_JP","og_type":"article","og_title":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.","og_description":"\u6ce8\u610f Microsoft Exchange\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u4f8b\uff1a@\u306e\u5f8c\u308d\u304c\u4f01\u696d\u540d\u3068\u304b\u72ec\u81ea\u306e\u30c9\u30e1\u30a4\u30f3\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\uff09\u3067\u306a\u3044\u3068SMTP\u306eOAuth\u8a8d\u8a3c\u3092\u6709\u52b9\u306b\u51fa\u6765\u306a\u3044\u3088\u3046\u306a\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u6301\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u8a73\u7d30\u306f\u308f\u304b\u3089\u306a\u3044\u3002 \u500b\u4eba\u30a2 &hellip; \"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\" \u306e\u7d9a\u304d\u3092\u8aad\u3080","og_url":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0\u3092\u4f7f\u7528\u3057\u3066-office365\u306esmtp\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044\/","og_site_name":"I want to lead an easy life.","article_published_time":"2024-01-15T11:47:30+00:00","article_modified_time":"2024-01-16T10:53:10+00:00","author":"hide6644","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"hide6644","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"7\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/#article","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/"},"author":{"name":"hide6644","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"headline":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044","datePublished":"2024-01-15T11:47:30+00:00","dateModified":"2024-01-16T10:53:10+00:00","mainEntityOfPage":{"@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/"},"wordCount":15,"commentCount":0,"articleSection":["Java"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/","url":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/","name":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044 - I want to lead an easy life.","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/#website"},"datePublished":"2024-01-15T11:47:30+00:00","dateModified":"2024-01-16T10:53:10+00:00","author":{"@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"breadcrumb":{"@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/technologyagency.net\/wordpress\/2024\/01\/15\/oauth-2-0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6-office365%e3%81%aesmtp%e3%81%a7%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%81%e4%bf%a1%e3%81%97%e3%81%9f%e3%81%84\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/technologyagency.net\/wordpress\/"},{"@type":"ListItem","position":2,"name":"OAuth 2.0\u3092\u4f7f\u7528\u3057\u3066 Office365\u306eSMTP\u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u3057\u305f\u3044"}]},{"@type":"WebSite","@id":"https:\/\/technologyagency.net\/wordpress\/#website","url":"https:\/\/technologyagency.net\/wordpress\/","name":"I want to lead an easy life.","description":"Technical Notes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/technologyagency.net\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63","name":"hide6644","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","caption":"hide6644"},"url":"https:\/\/technologyagency.net\/wordpress\/author\/hide6644\/"}]}},"_links":{"self":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/2590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/comments?post=2590"}],"version-history":[{"count":12,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/2590\/revisions"}],"predecessor-version":[{"id":2603,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/2590\/revisions\/2603"}],"wp:attachment":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/media?parent=2590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/categories?post=2590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/tags?post=2590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}