Recreational Event: “We Held a Bowling Tournament”

Thank you for reading! This blog post is brought to you by “237.”
At Dandelions, we hold regular social events to help our employees bond.
In early March, we visited Round One Chikusa and held a bowling tournament!

In the past, our recreational activities have included eating Burmese food and holding tournaments to determine the “Weakest Player” at Go Fish, but this bowling tournament was organized in response to requests for “something that gets everyone moving and having fun together.”
Seventeen people participated. Despite it being a day off, employees gathered one after another, and the event was filled with such energy that it was hard to believe it was the first time we’d held it.

Let’s hit the course!

This tournament is not a team competition but a “purely individual contest.” The rules stipulate that the top two finishers in both the men’s and women’s divisions will be honored and receive prizes. Even before the event began, voices full of enthusiasm could be heard all around, with comments like, “If there are prizes, I’ve got to give it my all,” and “It’s been a while, so I’m itching to compete.”

After the opening remarks, it was time to start with some practice throws!
Some people, bowling for the first time in a while, smiled wryly and said, “The ball feels heavy…” while others surprised everyone by immediately rolling a strike. Since many of the members usually do desk work, there were several moments when we got a glimpse of their unexpectedly good athletic ability.

Here’s a look at the first pitch ceremony! They’re really pumped up!

Once the competition got underway, cheers and applause rang out continuously from every lane. High-fives flew every time a strike was rolled, and even when a ball went into the gutter, everyone laughed it off with a “Don’t worry!”—a warm, friendly atmosphere filled the entire venue.
Even though it’s an individual competition, the fact that people naturally cheer each other on is one of the great things about bowling. ^^

As the game progressed, the “hidden stars” of the event began to shine one after another.
There were a series of moments that made us gasp in surprise—like the usually quiet Fuku hitting consecutive strikes and getting the crowd cheering, or newcomer Ryu pulling off a brilliant spare under pressure, earning loud applause from everyone around. Seeing a different side of our colleagues than we usually do at work is one of the unique joys of a company event.

And once all the games were over, it was finally time for the awards ceremony.
The first- and second-place winners in both the men’s and women’s divisions were announced, and a huge round of applause erupted the moment their names were called. The winners were presented with Starbucks gift cards, and everyone who received one beamed with joy.
Even those who narrowly missed the podium offered positive comments like, “Next time for sure,” and “I’ll practice and come back stronger,” making this a hugely successful event despite being the first of its kind.

We took a commemorative photo with everyone striking their own “bowling pose”
A glimpse of the exciting awards ceremony

Let’s head to the social gathering!

After the tournament, we held a casual get-together for those who were interested.
As we looked back on memorable moments from the game—commenting on things like, “That strike was a miracle,” or “It’s so frustrating to have hit the gutter there”—we enjoyed a time filled with nonstop laughter. Even among members who usually have different job roles and rarely get a chance to talk, conversation flowed naturally, and it felt like the distance between us within the company had closed significantly.

Summary

Although this was our first bowling tournament, it was a huge success.
Bowling is a sport that everyone can enjoy together, whether they’re athletic or not, making it the perfect activity for fostering camaraderie among colleagues! Many participants have already said they’d like to do it again.

We hope to continue using events like this to strengthen the bonds among our employees and create a more comfortable and enjoyable workplace.
Stay tuned for our next blog post!

レクリエーション「ボウリング大会を開催しました」

ご覧いただきありがとうございます!今回のブログ担当「237」です。
ダンデライオンズでは、社員同士の親睦を深めるために定期的に交流会を開催しています。
3月上旬にはラウンドワン千種店さんにお邪魔し、ボウリング大会を開催しました!

これまでのレクリエーションといえばミャンマー料理を食べたり、ババ抜き最弱王決定戦などを開催したことがありましたが、「体を動かして、みんなで盛り上がれるものを」という声から企画されたのが今回のボウリング大会です。
参加者は17名。お休みの日にもかかわらず社員たちが続々と集まり、初開催とは思えないほどの活気に包まれました。

いざラウンドへ!

今回の大会は、チーム戦ではなく“完全な個人戦”。男女それぞれで1位・2位を表彰し、景品を贈呈するというルールです。「景品があるなら本気出すしかない」「久しぶりだから腕が鳴る」と、開始前からやる気満々の声があちこちで聞こえてきました。

開会のあいさつを終えると、まずは練習投球へ!
久々のボウリングに「ボールが重い…」と苦笑いする人もいれば、いきなりストライクを出して周囲を驚かせる人も。普段はデスクワーク中心のメンバーが多いだけに、意外な運動神経の良さが垣間見える瞬間が何度もありました。

始球式の様子!気合十分です

本番がスタートすると、各レーンから歓声や拍手が絶えません。ストライクが出るたびにハイタッチが飛び交い、ガターに落ちても「ドンマイ!」と笑い合う、そんな温かい空気が会場全体に広がっていました。
個人戦とはいえ、自然と応援し合う雰囲気が生まれるのがボウリングの良さですね^^

ゲーム中盤には、今回の“隠れ強者”たちが次々と頭角を現しました。
普段は物静かなフクさんが連続ストライクを決めてレーンを沸かせたり、新人のりゅうちゃんがプレッシャーの中で見事にスペアを取り、周囲から大きな拍手が起きたりと、思わず「おおっ」と声が出る場面が続きました。仕事中とは違う一面が見られるのも、社内イベントならではの楽しさです。

そして全ゲーム終了後、いよいよ表彰式へ。
男女それぞれの1位・2位が発表され、名前を呼ばれた瞬間には大きな拍手が巻き起こりました。優勝者にはスターバックスカードが贈呈され、受け取った皆さんは満面の笑み。
惜しくも入賞を逃した人たちからも「次こそは」「練習してリベンジします」と前向きな声が上がり、初開催ながら大いに盛り上がる大会となりました。

各々が思う「ボウリングポーズ」?で記念撮影をしました
ドキドキの表彰式の様子

懇親会へ!

大会後は、希望者で軽く懇親会を実施しました。
ゲーム中の名シーンを振り返りながら、「あのストライクは奇跡だった」「あそこでガターは悔しすぎる」など、笑いの絶えない時間が続きました。普段は仕事内容が違って話す機会が少ないメンバー同士も自然と会話が生まれ、社内の距離がぐっと縮まったように感じます。

まとめ

今回のボウリング大会は、初開催にもかかわらず大成功と言えるイベントになりました。
スポーツが得意な人もそうでない人も一緒に楽しめるボウリングは、まさに社内交流にぴったりでした!参加者からも「またやりたい」といった声が多く寄せられています。

今後もこのようなイベントを通じて社員同士のつながりを深め、より働きやすく、より楽しい職場づくりを進めていきたいと思います。
次回のブログもお楽しみに~!

Engineer’s Blog: Creating an Excel Macro (Move to Cell A1 and Set Zoom Level to 100%)

Hello! I’m Hirotomaru, and I’m writing this article.
In this post, I’ll show you how to use an Excel macro to “jump to cell A1 and reset the zoom level to 100%.”
You may have experienced situations where your scroll position or zoom level gets saved incorrectly, making the file hard to read the next time you open it. This macro makes it incredibly convenient to perform this action with just one click.

I will explain the steps for creating a macro shortcut button.

Show the Development tab

First, display the “Developer” tab to use macros.

  1. Click “File” in the upper-left corner
  2. Select “Other” → “Options”
  3. Open “Ribbon Customization”
  4. Check the “Development” box

Create a macro

1.Click “Record Macro” on the “Developer” tab

2.Enter the macro name, select “Personal Macro Workbook” under “Save macro in (I)”, and click “OK”

3.Without doing anything, click “Stop Recording”

Paste the code

Open the “Visual Basic” section in the Development tab and paste the following code into the Standard Module.
Delete all existing text, and replace “Sub MacroName()” on the first line with the macro name you entered when you created it.
Once you’ve pasted the code, save and close the file.

Sub A1 Shortcut()

‘ Disable screen updating (to prevent screen flickering)
Application.ScreenUpdating = False

Dim ws As Worksheet

Process all sheets in order
For Each ws In Worksheets

‘ Select a sheet
ws.Select

‘ Move to cell A1
Range(“A1”).Select

‘ Reset the display position to the top-left
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1

‘ Set the display zoom level to 100%
ActiveWindow.Zoom = 100

Next ws

Return to the first sheet
Sheets(1).Select

Resume screen updating
Application.ScreenUpdating = True

‘ Completion message
MsgBox “Processing is complete”

End Sub

In this case, I pasted the code into Module 7 of the standard modules.

Add to Favorites

Add to Shortcuts Since you can’t run the macro with a single click as it is, let’s add it to the Quick Access Toolbar so you can run it immediately.

  1. Open the Quick Access Toolbar settings
  2. Select the macro
  3. Add the macro you created (A1 Shortcut) and click OK

You can run it with a single click using the button in the upper-left corner.

Summary

By setting up the macro we’ve introduced here, you can easily reset the view position and zoom level for each sheet to their default settings. Since it can be executed with a single click, I believe it will help streamline your work. Please give it a try.

Stay tuned for our next engineer blog post!!

技術者ブログ:Excelのマクロ作成(A1セルに移動して倍率を100%にする)

こんにちは!今回の記事を担当しますひろとまるです。
今回は、Excelマクロを使って「A1セルに移動し、表示倍率を100%に戻す方法」をご紹介します。
スクロール位置や表示倍率がバラバラのまま保存されてしまい、次回開いたときに見づらいと感じることがあると思います。1クリックでこの操作をできるようになるのでとても便利です。


マクロショートカットボタンを作るまでの手順を説明していきます。

開発タブを表示する

まずはマクロを使用するために、開発タブを表示します。

1.左上の「ファイル」をクリック
2.「その他」→「オプション」を選択
3.「リボンのユーザー設定」を開きます
4.「開発」にチェックを入れます

マクロを作成する

1.「開発」タブから「マクロの記録」をクリック

2.マクロ名を入力して、マクロの保存先(I)で「個人用マクロブック」を選択し「OK」を押します

3. 何も操作せず「記録終了」をクリック

コードを貼り付ける

開発タブの「Visual Basic」を開き、標準モジュールところに以下のコードを貼り付けます。
元から入っている文字はすべて消して、一行目の「Subマクロ名()」には作成するときに入力したマクロ名を入れます。
貼り付けたら保存して閉じます。

Sub A1ショートカット()

‘ 画面更新を停止(画面のちらつきを防ぐ)
Application.ScreenUpdating = False

Dim ws As Worksheet

‘ すべてのシートを順番に処理
For Each ws In Worksheets

' シートを選択
ws.Select

' A1セルに移動
Range("A1").Select

' 表示位置を左上にリセット
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1

' 表示倍率を100%に設定
ActiveWindow.Zoom = 100

Next ws

‘ 1枚目のシートに戻る
Sheets(1).Select

‘ 画面更新を再開
Application.ScreenUpdating = True

‘ 完了メッセージ
MsgBox “処理が完了しました”

End Sub

今回の場合は標準モジュールのModule7にコードを貼り付けました。

ショートカットに登録する

このままだと1クリックでマクロを実行できないので、クイックアクセスツールバーに登録してすぐに実行できるようにします。
1.クイックアクセスツールバーの設定を開きます
2.マクロを選択します
3.作成したマクロ(A1ショートカット)を追加してOKを押します

左上のボタンから1クリックで実行できます。

まとめ

今回ご紹介したマクロを設定しておくことで、シートごとの表示位置や倍率を簡単に初期状態へ戻すことができます。ボタン一つで実行できるため仕事の効率化にもつながると思います。ぜひ活用してみて下さい。

次回の技術者ブログもお楽しみに!!

Employee Introduction

Thank you for reading.
I’m “Ryu,” and I’ll be writing this employee profile. (This is my first appearance.)

I’d like to talk about what led me to join Dandelions and my thoughts since joining the company.

Reason for joining the company

I have been involved in system development and operations and maintenance for approximately 13 years. Focusing primarily on financial systems, I have gained extensive experience across the entire development lifecycle, from requirements definition through design, development, and testing to operations and maintenance.

As I gained experience in the same field over the years, I became able to perform my duties consistently and developed a certain level of confidence in my abilities. However, at the same time, I began to wonder more and more, “Is this really enough?” and felt a growing desire to take on new challenges in emerging technologies.

The IT industry changes rapidly, and there is a constant demand for new technologies and methodologies. To continue growing professionally in this environment, I’ve come to realize that I need to step outside my comfort zone and take on new challenges.

Additionally, as an engineer working in Japan, I wanted to grow not only in my technical skills but also in my communication skills and ability to work effectively as part of a team.

It was under these circumstances that I came across Dandelions. I was drawn to the opportunity to take on new technologies and environments, as well as to a workplace where I can thrive regardless of my nationality, and I am truly grateful for the chance to join the company.

My thoughts since joining the company

Since joining the company, I’ve been working in a development environment that moves at a faster pace than ever before. Since the environment and required skills vary from project to project, I was a bit overwhelmed at first, but that has allowed me to learn a great deal.

I’ve had more opportunities to work with technologies I hadn’t encountered before, and I can really feel my development skills—particularly in Java—improving. Through daily trial and error, I can sense my own growth.

Although I sometimes face challenges in my work, I feel that solving them one by one with the support of those around me is helping me grow.

I am also deeply grateful to our CEO, president, and all my colleagues for their kindness; whenever I’ve faced difficulties, they’ve always offered their wholehearted support. Having an environment where I can feel comfortable seeking advice is a tremendous source of support.

I feel that Dandelions fosters an environment where it’s easy to communicate and seek advice, regardless of age or nationality. Through these opportunities for interaction, I feel that the bonds between colleagues have grown stronger, and we’ve been able to build better relationships.

At Todagawa Green Space. I realized that just by changing my perspective a little, even the familiar scenery looks different.

That concludes this blog post.
We hope you’ll look forward to our next post.

社員紹介

閲覧いただきありがとうございます。
今回の社員紹介記事を担当します「リュウ」です。(初めての登場となります)

ダンデライオンズに入社したきっかけと、入社後に感じていることについてお話しいたします。

入社のきっかけ

私はこれまで約13年間にわたり、システム開発および運用保守業務に携わってきました。主に金融系システムを中心に、要件定義から設計、開発、テスト、運用保守まで一連の工程を幅広く経験してきました。

長年同じ分野で経験を積む中で、安定して業務を遂行できるようになり、自分なりに一定の自信を持てるようになりました。しかしその一方で、「このままで良いのか」「新しい技術にも挑戦したい」という思いが徐々に強くなっていきました。

IT業界は変化のスピードが速く、常に新しい技術や手法が求められます。その中で自分自身も成長し続けるためには、これまでの経験にとらわれず、新しい環境に挑戦することが必要だと考えるようになりました。

また、日本で働くエンジニアとして、技術力だけでなくコミュニケーション能力やチームでの働き方についても成長したいという思いがありました。

そのような中でダンデライオンズと出会い、新しい技術や環境に挑戦できる点や、国籍に関係なく活躍できる環境に魅力を感じるとともに、入社の機会をいただけたことに心より感謝しております。

入社後の感想

入社後はこれまで以上にスピード感のある開発現場で業務に取り組んでいます。案件ごとに環境や求められるスキルが異なるため、最初は戸惑うこともありましたが、その分多くの学びを得ることができています。

これまで経験のなかった技術に触れる機会も増え、Javaをはじめとした開発スキルの向上を実感しています。日々試行錯誤を重ねながら、自身の成長を感じています。

業務の中で課題に直面することもありますが、周囲のサポートを受けながら一つひとつ解決することで、自分の力になっていると感じています。

また、代表、社長をはじめ、同僚の皆様には大変よくしていただいており、困ったときにはいつも親身にサポートしていただき、心より感謝しております。安心して相談できる環境があることは、大きな支えになっています。

ダンデライオンズは年齢や国籍に関係なくコミュニケーションが取りやすく、相談しやすい環境が整っていると感じています。交流の機会を通じて、同僚同士の距離が深まり、より良い関係が築けていると感じています。

戸田川緑地にて。少し視点を変えるだけで、いつもの景色も違って見えると実感しました。

今回の紹介ブログは以上となります。
次回のブログもお楽しみにしていただければと思います。

Internal Study Session Report: Hands-On Experience Setting Up a Vue 3 Development Environment with Cursor

We recently held an in-house workshop titled “Hands-On Experience: Setting Up a Vue 3 Development Environment with Cursor.” Here’s a look at how it went.

The purpose of this study session was to provide hands-on experience in setting up a Vue 3 development environment using the AI editor “Cursor.”
We were pleased to see a large turnout, including many non-engineers as well as engineers, making for a very lively event.

Note that we are setting up the environment based on a technical blog.

Study Session Agenda

  • An Overview of Vue 3
  • Setting Up the Development Environment
  • Creating a Vue 3 Project
  • Startup Demo

① Overview of Vue 3

First, I explained the position of Vue 3.

Vue is a framework specialized for the “V” (View) component of the MVC model, and its primary role is to control the display of screens and the behavior in response to user interactions.

  • Vue: Display, Interact, Switch
  • Server-side: Protect, Decide, Remember

I explained the distinction between front-end and back-end roles using this comparison.
By emphasizing that “Vue is strictly responsible for the user interface,” the content became easier for beginners to understand.

② Setting up the development environment

Next, I explained the overall picture of the tools required for development.

  • Node.js: A platform for running JavaScript
  • Vue 3 + Vue Router: How Screens Are Built
  • Cursor: A development editor with AI capabilities

After that, we actually carried out the following installation procedures.

  • Installing Node.js
  • Installing Cursor
  • Installing Recommended Plugins for Cursor

There were many instances where participants supported one another, making it a practical learning experience.

③ Creating a Vue 3 Project

Once the environment is set up, use the following command to create a Vue 3 project.

npm create vue@latest

During this step, some participants encountered an issue where the npm command was not recognized.
When errors occurred, the team members supported one another, and we were able to successfully complete the project.

④ Startup Demo

Finally, I started the development server using the following command and verified the screen display.

npm run dev

The local server has started up, and I have confirmed that the Vue welcome screen is displaying correctly in the browser.

For those with extra time, we also had them try implementing Element Plus, a UI library.
By combining Vue with UI components, I believe they were able to get a sense of what screen development is like.

In this study session,

  • Understanding the Role of Vue 3
  • Setting Up a Development Environment Using Cursor
  • Creating and Running a Vue Project

We have completed all of the above steps.

We plan to continue hosting development workshops focused on Cursor.
Stay tuned for our next article!

社内勉強会レポート:CursorでVue3開発環境構築体験

今回は社内勉強会「CursorでVue3開発環境構築体験」を開催しました。その様子をご紹介します。

本勉強会では、AIエディタ「Cursor」を活用しながら、Vue3の開発環境構築を実際に体験することを目的に実施しました。
エンジニアだけでなく、非エンジニアの方にも多くご参加いただき、非常に活気のある会となりました。

なお、環境構築は技術者ブログをベースに進めています。

勉強会の流れ

  • Vue3の概要
  • 開発環境の構築
  • Vue3プロジェクト作成
  • 起動デモ

① Vue3の概要

まずはVue3の立ち位置について解説しました。

VueはMVCモデルにおける「V(View)」に特化したフレームワークであり、
画面表示やユーザー操作に対する動きの制御を主な役割とします。

  • Vue:見せる・触る・切り替える
  • サーバー側:守る・判断する・覚える

という対比で、フロントエンドとサーバーサイドの役割の境界線を説明しました。
「Vueはあくまで画面担当」という点を強調することで、初学者にも理解しやすい内容となりました。

② 開発環境の構築

続いて、開発に必要なツールの全体像を説明しました。

  • Node.js:JavaScriptを実行するための基盤
  • Vue3 + Vue Router:画面を構築する仕組み
  • Cursor:AI機能を備えた開発エディタ

その後、実際に以下のインストール作業を実施しました。

  • Node.js のインストール
  • Cursor のインストール
  • Cursorの推奨プラグイン導入

参加者同士でサポートし合いながら進める場面も多く、実践的な学びの場となりました。

③ Vue3プロジェクト作成

環境が整った後は、以下のコマンドでVue3プロジェクトを作成します。

npm create vue@latest

この工程では、一部の参加者で npm コマンドが認識されない事象が発生しました。
エラーが発生した時には、メンバー同士でフォローしあい、無事にプロジェクト作成まで進めることができました。

④ 起動デモ

最後に、以下のコマンドで開発サーバを起動し、画面表示を確認しました。

npm run dev

ローカルサーバが立ち上がり、ブラウザにVueの初期画面が無事表示されることを確認できました。

さらに時間に余裕のある方には、UIライブラリであるElement Plusの導入にも挑戦してもらいました。
VueとUIコンポーネントを組み合わせることで、画面開発のイメージを体験できたと思います。

今回の勉強会では、

  • Vue3の役割理解
  • Cursorを使った開発環境構築
  • Vueプロジェクト作成と起動体験

までを一通り実施しました。

今後もCursorをテーマにした開発勉強会を継続して開催していく予定です。
次回の記事もぜひお楽しみに!

Engineer Blog: Sending Emails in OutSystems

In this engineer blog, I introduce the topics I study and work on in my daily learning.

Today’s Topic: Sending Emails in OutSystems

In OutSystems, you can send emails from screens or batch processes by using your own mail server.
In this post, I’ll walk through how to configure the environment and how to create a test screen.

Preparation: What You Need to Have Ready in Advance

OutSystems alone cannot send emails.
You need to prepare an email server in advance and make note of the following information:
#1.SMTP server
#2.SMTP port number
#3.Username (email address)
#4.Password
Depending on the type of mail server, there may also be options such as ‘restrictions on sending from overseas.’
If such a setting exists, be sure to turn it off.
Otherwise, you may encounter errors like ‘Sender address rejected: Incorrect country code US,’ which can prevent email delivery even when your configuration is correct.

Step 1: Environment Setup

First, enter the mail server information that OutSystems will use from Service Center. In Service Studio, click the gear icon shown below to access Service Center.

After logging in, open the email server settings by selecting Administration > Email

Enter the following information as shown below:
・SMTP Server: Preparation #1
・SMTP Port: Preparation #2
・Username: Preparation #3
・Password: Preparation #4
・Default Sender Email: Preparation #3
・Redirect Emails To Test List: Optional
 *This option redirects emails to the Test List Addresses even if the logic specifies a different recipient.
  Enable this for testing purposes.
・Test List Addresses: Optional
 *Specify the email address to which messages will be redirected.

After entering all the information, click the Save and Apply Settings to the Factory button to apply the configuration.
 *Note: Simply clicking ‘Save’ does not activate the email settings.
  Also, the Password field will appear blank after saving, but as long as the configuration is correct, emails will still be sent without any issues.

Step 2: Creating the Logic

This time, we will create a simple test screen and the logic for sending emails, as shown below.

① Test Screen: Enter the recipient, subject, and message body, then click the SendMail button to send an email based on the entered values.
② Email Body Screen: The value received through the InBody input parameter is displayed directly as the email body.
③ Client Action: This action is triggered when the SendMail button is clicked. It calls the server action responsible for sending the email.
④ Server Action: This action is called from the Client Action. It sends the email according to the layout created in step ②

Testing the Functionality

Once the 1‑Click Publish completes successfully, open the screen and try running it.

Example Input: To verify the redirect behavior, enter an email address in the top recipient field that is different from the one configured in Test List Addresses.
The email that was actually received at the address specified in Test List Addresses.

The top section shows the value of the Default Sender Email.
You can also see that the recipient field contains the address entered on the screen (which is different from the one specified in Test List Addresses), confirming that the redirect feature is working as expected.

Email sending logs in Service Center.

From Monitoring > Email, you can check the subject, sender/recipient email addresses, email size, and status.
In particular, the status may show Sent (success), Pending (waiting), or Error (failed). When an error occurs, you can click the Detail link to view the error information, which helps identify the cause.

Conclusion

With the above steps, you are now able to send emails from OutSystems.
However, one important point to keep in mind is that the actual email‑sending mechanism ultimately depends on the mail server.
Be sure to review the mail server settings carefully to ensure they meet your requirements—for example, limits on the number of emails that can be sent per hour, or restrictions on sending or receiving emails from specific addresses.

Stay tuned for the next developer blog…

技術者ブログ:(Outsystems)メールを送信する

技術者ブログとして日ごろ取り組んでいる学習内容を紹介します。

今回のテーマ:(Outsystems)メールを送信する

Outsystemsでは、各自で用意したメール送信サーバを用いることで、画面・バッチよりメールを送信することが出来ます。
今回は、環境設定と、テスト用画面の作成方法について紹介します。

準備:予め用意しておくもの

Outsystems単独ではメールを送信することはできません。
予め、メール送信サーバを調達し、以下の情報をメモしておきましょう:
#1.送信サーバ(SMTP)
#2.送信サーバのポート番号
#3.ユーザー名(メールアドレス)
#4.パスワード
また、メール送信サーバの種類にもよりますが、気を付けるべき点として「海外からの送信制限」のようなオプションがある場合、Offにしておきましょう。
“Sender address rejected: Incorrect country code US”のようなエラーが発生し、設定が正しいのにメールが送信できない場合があります。

手順1:環境設定

まず、ServiceCenterより、Outsystemsが使用するメール送信サーバの情報を入力します。
ServiceStudioより、下記歯車アイコンを押下し、ServiceCenterへアクセスしてください。

ログイン後、メニューよりAdministration>Emailとリンクを押下することで、メール送信サーバの設定画面が開きます。

それぞれ、次のように入力します:
・SMTP Server:準備#1
・SMTP Port:準備#2
・Username:準備#3
・Password:準備#4
・Default Sender Email:準備#3
・Redirect Emails To Test List:任意
 ※ロジックで宛先を指定しても、後述するTest List Addressesへメールをリダイレクトする機能です。
  動作確認のため、有効化しておきます。
・Test List Addresses:任意
 ※リダイレクト先のメールアドレスを設定します。

一通り入力し終えたら、Save and Apply Settings to the Factoryボタンを押下し、入力した設定値を反映しましょう。
 ※Saveするだけではメール設定は有効になりません。
  また、Save後Password欄は空欄になりますが、正しく設定できていればメールは送信できますので問題ありません。

手順2:ロジック作成

今回は、下記のようなシンプルなテスト画面、およびメール送信機能のロジックを作成します。

①テスト画面:宛先、件名、本文を入力し、SendMailボタンを押下することで入力値に基づきメールが送信される。
②メール本文画面。引数InBodyで受け取った値をそのままメール本文に表示する。
③ClientAction:SendMailボタン押下時に呼ばれる。メール送信用サーバアクションを呼び出す。
④ServerAction:ClientActionから呼び出される。②で作成したレイアウトに従い、メールを送信する。

動作確認

1-click publishが正常終了したら、画面を開いて動かしてみましょう。

入力例:リダイレクト動作確認のため、最上段の宛先メールアドレスには、Test List Addressesで設定したものと異なるメールアドレスを入力する。
実際にTest List Addressesに記載のメールアドレスにて受信したメール。

最上段にはDefault Sender Emailの値が記載されています。
また、宛先欄には画面で入力した宛先(≠Test List Addressesに記載のメールアドレス)が記載されており、リダイレクトが期待通りに機能していることが読み取れます。

ServiceCenterにおけるメール送信ログ。

Monitoring>Emailより、件名・送信元/先メールアドレス・メール容量・ステ―タスが確認できます。
特に、ステータスはSent(送信完了)・Pending(待機中)の他にError(送信失敗)になる場合があり、この時表示されるDetailリンクからエラー内容を確認できるため、原因の特定に役立てることができます。

まとめ

以上の手順にて、Outsystemsよりメールを送信することができるようになりました。
ただし、一つ気を付けておかなければならないのは「あくまでメール送信の仕組み自体はメール送信サーバに依存している」ことです。
時間当たりの送信可能メール数や、特定のメールアドレスから/へのメール送受信を許可しない設定など、要件に合わせたカスタマイズが送信サーバ側の設定をよく確認しましょう。

それでは、次回の技術者ブログをお楽しみに…。