inbound Actionについて

kim62
Tera Expert

Inbound email action機能でメール本文内に記載されているメールアドレスをキーにインシデントのCaller_id(問い合わせユーザ)にセットしようと思います。

例)
問合せユーザ:
Shintaro Tanaka (田中 慎太郎)
tanaka.shintaro@company.co.jp
情報システム部

Caller_idに値が上手くセットできていないかつ問い合わせユーザに情報が多いため、メールアドレスのみを抽出する方法はありますでしょうか。

私が現在、書いたものになります。
var emailAdd = email.body.問合せユーザ;

emailAdd = emailAdd.toString(); 
var grUser = new GlideRecord('sys_user');

grUser.addQuery('email'、emailAdd);
grUser.query();

if(grUser.next()){
current.caller_id = grUser.sys_id;
} else{
current.caller_id = '5136503cc611227c0183e96598c4f706'; //sysidが見つからない場合はguestに設定
}

 

何かアドバイス頂けますと幸いです。
よろしくお願い致します。

1 件の受理された解決策

iwai
Giga Sage

正規表現を使った文字列抽出をすると良いです。Googleで「正規表現 メールアドレス」とすれば例がたくさん見つかります。

var mailBody = ' Example \nExample \nExample\n test@example.com  \n Example \nExample \nExample\n';
var list = mailBody.match(/[a-zA-Z0-9_+-]+(.[a-zA-Z0-9_+-]+)*@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}/);
if(list){
    gs.info(list[0]); // test@example.com
}

元の投稿で解決策を見る

2件の返信2

iwai
Giga Sage

正規表現を使った文字列抽出をすると良いです。Googleで「正規表現 メールアドレス」とすれば例がたくさん見つかります。

var mailBody = ' Example \nExample \nExample\n test@example.com  \n Example \nExample \nExample\n';
var list = mailBody.match(/[a-zA-Z0-9_+-]+(.[a-zA-Z0-9_+-]+)*@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}/);
if(list){
    gs.info(list[0]); // test@example.com
}

ありがとうございます。参考になりました。