Beckhoff#TwinCAT3 TF6350 Send Email From Outlook

今回のTutorialはTwinCAT6350 使用しOutlook Serverにメールを送信します。

Installation

下記のLinkにアクセスし、インストールPackageをDownloadします。

https://www.beckhoff.com/en-en/products/automation/twincat/tfxxxx-twincat-3-functions/tf6xxx-tc3-connectivity/tf6350.html

Next>します。

ライセンスに同意し、Nextします。

情報を入力し、Nextします。

Completeのほうが無難で、Next>します。

Nextします。

Installで開始します。

しばらくまちます。

よし、これでOKです。

TwinCAT/FunctionsのFolderにTF6350-SMS-SMTPのFolderが見えます。

System Requirment

Configure Your Email

Outlook

今回のMail ServerではOutlookを使用します。

OutlookをLoginし、歯車のICONをクリックします。

一番したのOutlookのすべての設定を表示をクリックします。

Settings>Main>Sync emailで展開します。

Pop optionsをYesし、一番したにSMTP settingsのFieldがあります。

ここでSMTP Serverと接続する設定を書いています。

以下のLinkを参考しました。

https://www.gmass.co/blog/outlook-smtp/


Why not Use Gmail?

なんでGmailを使わないかと言いますと、2022-5-30からLess secure appsからのMail Server Loginができなくなり、また設定方法を探すのが少し面倒なので…

https://support.google.com/accounts/answer/6010255?hl=en

Configuration

こちらは今回の構成です。すごくシンプルでTwinCAT3 TF6350を使用し自分のOutlookアカウントから別のメールアドレスにメール送信します。

Function Block

次は今回の記事で使用してるFunction Blockを紹介します。

FB_SmtpV3

このFunction Blockを使用することによりSMTP Severにメール送信する機能を実装します。

VAR_INPUT

sNetId T_AmsNetIDTwinCAT SMTP ServerのAmsNetID
sSmtpServer T_MaxStringSMTP Server/IP
sUsername T_MaxStringSMTP ServerのUserNameここはOutlookのUsername
sPasswordT_MaxStringSMTP ServerのPasswordここはOutlookのPassword
nEncryption UDINT0=NONE, 1=STARTTLS, 2=SSL
sFrom T_MaxString送信者のメールアドレス最大255文字
sTo T_MaxString受信者のメールアドレス最低限1つの受信者が必要で、最大255文字
sCc T_MaxStringCc受信者のメールアドレス最大255文字
sBcc T_MaxStringBcc受信者のメールアドレス最大255文字
sSubject T_MaxStringメールのタイトル
pMessage POINTER TO STRINGメール内容の変数Memory Address空文字なら日付だけのメッセージになります。ExampleMail send at Thu, 23 Mar 200602:31:44 -0800
cbMessage UDINTメール内容の変数SIZE
bExecute BOOL立ち上げで実行
tTimeout TIME := T#20sTimeout 設定

VAR_OUTPUT

bBusy BOOLTrue=実行中
bError BOOLTrue=Function 実行エラー
nErrId UDINTError情報

Implementation

では実際にプログラムを組んでみましょう。

VAR

使用するのはFB_SmtpV3 Function blockなのでVAR内で定義します。

MessageはMailに送信する内容です。

PROGRAM MAIN
VAR
SmtpV3:FB_SmtpV3;
Message:STRING;
bSend:BOOL;
END_VAR

PROGRAM

nEncryptionのところは1をセットしてください。OutlookのSMTP SettingではSTARTTLSを使用しますので。sFromは自分Outlook Accountのメールアドレスそのままでよいと思います。最後はbSend がTrueになりFunction blockを実行し、bBusyが落ちたらリセットします。

Message:=’Hello! this is a test!’;

SmtpV3(
sSmtpServer:=’smtp.office365.com’
,sUsername:=’YourOutlookAccount_Username’
,sPassword:=’YourOutlookAccount_Password’
,nEncryption:=1
,sFrom:=’YourOutlook_Email’
,sTo:=’The receiver’
,sSubject:=’Test subject’
,pMessage:=ADR(Message)
,cbMessage:=SIZEOF(Message)
,bExecute:=bSend
);

IF bSend AND NOT SmtpV3.bBusy THEN
bSend:=FALSE;
END_IF

Result

メールは無事に届きましたね。

Sample Code

https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCAT%20Project_SmtpV3_Sample.tnzip

Summary

最後ですが、InternetでGmail やOutlookl送信する情報を探すとき、大体似てるCodeがのっていますね。でも、一切Gmail側やOutlook側の設定に触れていませんね。そこは少し無責任かなと感じました。メモ系のBlogならまだよいですが、明らかにTutorial風のサイトなら、そのような無責任なことは自分にとって少し許せないですね。

”いかに他の人を楽に覚えさせる”のが自分の目標です。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする