Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
解決! メール送信 (2015)
Search
4D Japan
September 15, 2024
Technology
35
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
解決! メール送信 (2015)
4D Japan
September 15, 2024
More Decks by 4D Japan
See All by 4D Japan
4D 21 LTS
miyako
0
15
4D 21
miyako
0
36
4D 20 R10
miyako
0
40
4D 20 R9
miyako
0
29
4D 20 R7 & R8
miyako
0
81
Unicodeの話 (2007)
miyako
0
41
Unicodeの話 (2008)
miyako
0
48
Google Apps Integration (2012)
miyako
0
48
Creating Custom Widgets (2012)
miyako
0
56
Other Decks in Technology
See All in Technology
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
190
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.2k
When Platform Engineering Meets GenAI
sucitw
0
200
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
160
AIは、人間らしい仕事の夢を見るか?─ AI時代のtoB/toEプロダクトを再設計する
techtekt
PRO
0
180
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
170
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
260
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
200
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
170
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
220
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
660
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
120
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
610
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
320
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Embracing the Ebb and Flow
colly
88
5.1k
The Curious Case for Waylosing
cassininazir
1
410
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
450
The agentic SEO stack - context over prompts
schlessera
0
830
Transcript
SSL・STARTTLS・UTF-‐‑‒8・HTML・添付ファイル 解決! メール送信
$hostName:="smtp.gmail.com" $from:="
[email protected]
" $to:="
[email protected]
" $subject:=… $body:=… $user:="
[email protected]
" $password:=… $useSSL:=1 $port:=465 $error:=SMTP_New
($smtpId) If (0=$error) Case of : (0#IT_SetPort (12;$port)) : (0#SMTP_Host ($smtpId;$hostName)) : (0#SMTP_From ($smtpId;$from)) : (0#SMTP_To ($smtpId;$to)) : (0#SMTP_Subject ($smtpId;$subject)) : (0#SMTP_Body ($smtpId;$body)) : (0#SMTP_Auth ($smtpId;$user;$password)) Else $error:=SMTP_Send ($smtpId;$useSSL) End case $error:=SMTP_Clear ($smtpId) End if v12.0 $error:=SMTP_SetPrefs (1;14;0) $error:=SMTP_Charset (1;1) ISO-‐‑‒2022-‐‑‒JP incomplete support UTF-‐‑‒8
v12.0 $error:=SMTP_SetPrefs (1;15;0) $error:=SMTP_Charset (1;1) UTF-‐‑‒8 code encoding header body
1 windows-‐‑‒1252 quoted-‐‑‒printable quoted-‐‑‒printable 2, 3, 4 us-‐‑‒ascii 7bit quoted-‐‑‒printable 5, 6, 7, 8 iso-‐‑‒8859-‐‑‒1 base64 quoted-‐‑‒printable 10, 14 iso-‐‑‒2022-‐‑‒jp base64 quoted-‐‑‒printable 15, 16 utf-‐‑‒8 (charset=shift-‐‑‒jis) base64 base64 Unicodeモードに関係なく,Internet Commands (~∼v13) に渡されたテキストは ⼀一旦,shift-‐‑‒jisに変換されなければならない。変換できない⽂文字は ? で置換される。 incomplete support UTF-‐‑‒8
$hostName:="smtp.gmail.com" $from:="
[email protected]
" $to:="
[email protected]
" $subject:=… $body:=… $user:="
[email protected]
" $password:=… $useSSL:=1 $port:=465 $error:=SMTP_New
($smtpId) If (0=$error) Case of : (0#IT_SetPort (12;$port)) : (0#SMTP_Host ($smtpId;$hostName)) : (0#SMTP_From ($smtpId;$from)) : (0#SMTP_To ($smtpId;$to)) : (0#SMTP_Subject ($smtpId;$subject)) : (0#SMTP_Body ($smtpId;$body)) : (0#SMTP_Auth ($smtpId;$user;$password)) Else $error:=SMTP_Send ($smtpId;$useSSL) End case $error:=SMTP_Clear ($smtpId) End if IMPLICIT MODE v12.1 SMTP over SSL SMTP over SSL SMTP over SSL $error:=SMTP_SetPrefs (1;14;0) $error:=SMTP_Charset (1;1)
IMPLICIT MODE v12.1 SMTP over SSL Error with AUTHENTICATION
$hostName:="smtp.gmail.com" $from:="
[email protected]
" $to:="
[email protected]
" $subject:=… $body:=… $user:="
[email protected]
" $password:=… $useSSL:=1 $port:=465 $error:=SMTP_QuickSend
($hostName;$from;$to;$subject;$body;$useSSL;$port;$user;$password) IMPLICIT v13.2 SMTP over SSL ポート番号・ユーザー名・パスワードを設定 (SMTP_̲Sendを使⽤用する必要なし) $error:=SMTP_SetPrefs (1;14;0) $error:=SMTP_Charset (1;1) SMTP over SSL
$hostName:="exchange.4d.com" $from:=“
[email protected]
" $to:="
[email protected]
" $subject:=… $body:=… $user:="keisuke.miyako" $password:=… $useSSL:=0 $port:=587 $error:=SMTP_QuickSend
($hostName;$from;$to;$subject;$body;$useSSL;$port;$user;$password) EXPLICIT v13.2 STARTTLS $error:=SMTP_SetPrefs (1;14;0) $error:=SMTP_Charset (1;1) STARTTLS STARTTLS: ⾮非SSLポート番号(Exchange: 587)に接続し,サーバーから要求された場合,SSL/TLSに移⾏行行する。
full support v14.0 UTF-‐‑‒8 $error:=SMTP_SetPrefs (1;14;0) $error:=SMTP_Charset (1;1) ISO-‐‑‒2022-‐‑‒JP code
encoding header body 1 utf-‐‑‒8 base64 base64 2, 3, 4 utf-‐‑‒8 base64 base64 5, 6, 7, 8 utf-‐‑‒8 base64 base64 10, 14 utf-‐‑‒8 base64 base64 15, 16 utf-‐‑‒8 base64 base64 SMTP_̲SetPrefs, SMTP_̲Charsetの指定に関係なく,Internet Commands (v14) に渡されたテキストは常にUnicode (UTF-‐‑‒8) で送信されるのはバグ。
$error:=SMTP_New ($smtpId) If (0=$error) Case of : (0#IT_SetPort (12;$port)) :
(0#SMTP_Host ($smtpId;$hostName)) : (0#SMTP_From ($smtpId;$from)) : (0#SMTP_To ($smtpId;$to)) : (0#SMTP_Subject ($smtpId;$subject)) : (0#SMTP_Body ($smtpId;$body;4)) : (0#SMTP_Auth ($smtpId;$user;$password)) Else $error:=SMTP_Send ($smtpId;$useSSL) End case $errorText:=IT_ErrorText ($error) $error:=SMTP_Clear ($smtpId) End if content-‐‑‒type v14.0 HTML Content-‐‑‒Type:text/html $error:=SMTP_AddHeader ($smtpId;"Content-Type";"text/html")
content-‐‑‒type 添付ファイル v14R4 $error:=SMTP_Attachment ($smtpId;$filePath;2;0;"";$contentType) code encoding 0 none 1
BinHex 2 Base64 3 AppleSingle 4 AppleDouble 5 AppleSingle+Base64 6 AppleDouble+Base64 7 UUEncode base64 ※最新のApple Mail/iOSはBinHex⾮非対応 code mode 0 append 1 over-‐‑‒write 2 remove append content-‐‑‒typeが省省略略された場合, 拡張⼦子に基づいて⾃自動的に追加
content-‐‑‒id 添付ファイル v14R4 $error:=SMTP_Attachment ($smtpId;$filePath;2;0;$contentId;$contentType) $error:=SMTP_New ($smtpId) If (0=$error) Case
of : (0#IT_SetPort (12;$port)) : (0#SMTP_Host ($smtpId;$hostName)) : (0#SMTP_From ($smtpId;$from)) : (0#SMTP_To ($smtpId;$to)) : (0#SMTP_Subject ($smtpId;$subject)) : (0#SMTP_Body ($smtpId;$body;4)) : (0#SMTP_Attachment ($smtpId;$logoPath;2;0;"image1")) : (0#SMTP_Auth ($smtpId;$user;$password)) Else $error:=SMTP_Send ($smtpId;$useSSL) End case $errorText:=IT_ErrorText ($error) $error:=SMTP_Clear ($smtpId) End if content-‐‑‒id <img src="cid:image1" alt="logo"> content-‐‑‒id
4D Write Pro v14R5 MIME $error:=SMTP_QuickSend ($hostName;$from;$to;$subject;$body;$param;$port;$user;$password) 11 12.1 13.2
14.0 14R5 no SSL 0 ⭕ STARTTLS 0 ⭕ ⭕ ⭕ SMTP over SSL 1 ⭕ ⭕ ⭕ ⭕ no SSL 2 ⭕ ⭕ ⭕ HTML/no SSL 4 ⭕ ⭕ HTML/STARTTLS 5 ⭕ ⭕ MIME/no SSL 8 ⭕ MIME/STARTTLS 9 ⭕