説明

画像送信装置、及び、当該画像送信装置を実現するプログラム

【課題】送信宛先が電子メールを適正に受信する能力があるにもかかわらず、電子メールの送信が中止されるのを回避する。
【解決手段】画像データを添付ファイルとする電子メールを生成するメール生成部141と、電子メールを送信宛先に向けて送信する通信部130と、電子メールの送信を制限する場合のデータサイズを規定する送信制限データサイズがテーブルデータとして送信宛先に対応付けて記憶される制限サイズ記憶部155と、画像データ及び画像データを含む電子メールのいずれか一方のデータサイズの値と、送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、電子メールの送信を制御するメール送信制御部142とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを電子メールに添付して任意の送信宛先の装置に向けて送信する機能を備えた画像送信装置、及び、当該画像送信装置を実現するプログラムに関する。
【背景技術】
【0002】
従来、原稿の画像を読み取って画像データを生成し、その画像データを電子メールに添付して任意の送信宛先の装置(以下、単に「送信宛先」と称する)に向けて送信する画像送信装置がある(例えば、特許文献1参照)。その画像送信装置の中には、電子メールのサイズが大きすぎると、送信宛先が電子メールを適切に受信できない可能性があるため、電子メールのサイズが所定の閾値を超えた場合に、電子メールの送信を中止する装置がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−260369号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の画像送信装置は、受信可能な電子メールのサイズが送信宛先毎に異なっているにもかかわらず、所定の閾値に基づいて、電子メールの送信を中止するか否かを、一律に判定するようになっている。そのため、従来の画像送信装置は、送信宛先が電子メールを適正に受信する能力があるにもかかわらず、電子メールの送信を中止する場合がある、という課題があった。
【0005】
本発明は、送信宛先が電子メールを適正に受信する能力があるにもかかわらず、電子メールの送信が中止されるのを回避する画像送信装置、及び、当該画像送信装置を実現するプログラムを提供することを主な目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、第1発明は、画像データを添付した電子メールを任意の送信宛先に向けて送信する画像送信装置であって、前記画像データを添付ファイルとする前記電子メールを生成するメール生成部と、前記電子メールを前記送信宛先に向けて送信する通信部と、前記電子メールの送信を制限する場合のデータサイズを規定する送信制限データサイズがテーブルデータとして前記送信宛先に対応付けて記憶される制限サイズ記憶部と、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方のデータサイズの値と、前記送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、前記電子メールの送信を制御するメール送信制御部とを有する構成とする。
【0007】
この画像送信装置は、メール送信制御部が、画像データ及び画像データを含む電子メールのいずれか一方のデータサイズの値と、送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、電子メールの送信を制御する構成となっている。そのため、この画像送信装置は、送信宛先の能力に応じて、電子メールの送信を制御することができる。これにより、この画像送信装置は、送信宛先が電子メールを適正に受信する能力があるにもかかわらず、電子メールの送信が中止されるのを回避することができる。
【0008】
なお、電子メールの送信の制御は、例えば、(1)電子メールの送信を中止する、(2)電子メールを分割して送信する、及び、(3)電子メールを配送する複数の送信側のメールサーバの中から、使用するメールサーバを選択する、等の処理を選択的に行うことによって、実現することができる。
【0009】
また、第2発明は、プログラムであって、画像データを添付した電子メールを送信宛先に向けて送信する通信部と、前記電子メールの送信を制限する場合のデータサイズを規定する送信制限データサイズがテーブルデータとして前記送信宛先に対応付けて記憶される制限サイズ記憶部とを有する画像送信装置の制御部を、前記画像データを添付ファイルとする前記電子メールを生成するメール生成部と、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方のデータサイズの値と、前記送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、前記電子メールの送信を制御するメール送信制御部として機能させる構成とする。
このプログラムは、第1発明に係る画像送信装置を実現することができる。
【発明の効果】
【0010】
第1発明によれば、送信宛先が電子メールを適正に受信する能力があるにもかかわらず、電子メールの送信が中止されるのを回避する画像送信装置を提供することができる。
また、第2発明によれば、第1発明に係る画像送信装置を実現するプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】実施形態1に係る画像送信装置の接続構成を示す図である。
【図2】実施形態1に係る画像送信装置の内部構成を示す図である。
【図3】実施形態1に係る画像送信装置の動作を示すフローチャート(1)である。
【図4】実施形態1に係る画像送信装置の動作を示すフローチャート(2)である。
【図5】実施形態1に係る画像送信装置の動作を示すフローチャート(3)である。
【図6】実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図(1)である。
【図7】実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図(2)である。
【図8】実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図(3)である。
【図9】実施形態1で用いるエラーメールの一例を示す図である。
【図10】実施形態1で用いる送信制限サイズテーブルの一例を示す図(1)である。
【図11】実施形態1で用いる送信制限サイズテーブルの一例を示す図(2)である。
【図12】実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【図13】実施形態1で用いるエラーメールの一例を示す図である。
【図14】実施形態1で用いる送信制限サイズテーブルの一例を示す図である。
【図15】実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【図16】実施形態1で用いるエラーメールの一例を示す図である。
【図17】実施形態1で用いる送信制限サイズテーブルの一例を示す図である。
【図18】実施形態2に係る画像送信装置の接続構成を示す図である。
【図19】実施形態2に係る画像送信装置の動作を示すフローチャート(1)である。
【図20】実施形態2に係る画像送信装置の動作を示すフローチャート(2)である。
【図21】実施形態2で用いる送信制限サイズテーブルの一例を示す図である。
【図22】実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【図23】実施形態2で用いるエラーメールの一例を示す図である。
【図24】実施形態2で用いる送信制限サイズテーブルの一例を示す図である。
【図25】実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【図26】実施形態2で用いるエラーメールの一例を示す図である。
【図27】実施形態2で用いる送信制限サイズテーブルの一例を示す図である。
【図28】実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【図29】実施形態2で用いるエラーメールの一例を示す図である。
【図30】実施形態2で用いる送信制限サイズテーブルの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施の形態(以下、「本実施形態」と称する)につき詳細に説明する。なお、各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。また、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
【0013】
[実施形態1]
<画像送信装置の構成>
以下、図1及び図2を参照して、本実施形態1に係る画像送信装置の構成につき説明する。図1は、実施形態1に係る画像送信装置の接続構成を示す図である。図2は、実施形態1に係る画像送信装置の内部構成を示す図である。
【0014】
ここでは、画像送信装置10がスキャナとして構成されている場合を想定して説明する。以下、画像形成装置10を「スキャナ10」と称する。スキャナ10は、原稿の画像を読み取って画像データを生成し、その画像データを電子メール(以下、「メール」と称する)で任意の送信宛先の装置(以下、単に「送信宛先」と称する)に向けて送信する装置である。以下、スキャナ10から送信されたメールを、他のメールと区別する場合に、特に「送信メール」と称する。
【0015】
(画像送信装置の接続構成)
図1に示すように、スキャナ10(メールアドレス:scan@example.com)は、例えば、LAN6等のネットワークによって、メールサーバSv11(ホスト名:mail.isp1.com)と通信可能に接続されている。
【0016】
メールサーバは、スキャナ10から送信された送信メールを操作者によって指定された送信宛先に向けて配送(Deliver)するサーバである。ここでは、「配送(Deliver)」とは、メールサーバが、送信メールを受信して、直接又は他のメールサーバを介して、受信された送信メールを送信宛先に送信する動作を意味している。メールサーバSv11は、スキャナ10と直接TCPコネクションを確立してメールを送信するメールサーバ(以下、「送信側のメールサーバ」と称する)である。
【0017】
図1に示す例では、メールサーバSv11は、インターネット5を介して、2つのドメインのグループと通信可能に接続されている。ここでは、2つのグループの一方がドメイン「company1.com」のグループ21であり、他方がドメイン「company2.com」のグループ22であるものとして説明する。
【0018】
ドメイン「company1.com」のグループ21には、メールサーバSv21(ホスト名:mail.company1.com)とユーザyamadaの端末21a(メールアドレス:yamada@company1.com)とが属している。
【0019】
メールサーバSv21と端末21aとは、LAN7a等のネットワークによって通信可能に接続されている。メールサーバSv21は、スキャナ10を含む他のグループの端末から送信されたメールを端末21aに配送したり、逆に、端末21aから送信されたメールを他のグループの端末に配送したりする。
【0020】
ドメイン「company2.com」のグループ22には、メールサーバSv22(ホスト名:mail.company2.com)とユーザsuzukiの端末22a(メールアドレス:suzuki@company2.com)とユーザtanakaの端末22b(メールアドレス:tanaka@company2.com)とが属している。
【0021】
メールサーバSv22と端末22aとは、LAN8a等のネットワークによって通信可能に接続されている。また、メールサーバSv22と端末22bとは、LAN8b等のネットワークによって通信可能に接続されている。メールサーバSv22は、スキャナ10を含む他のグループの端末から送信されたメールを端末22a,端末22bに配送したり、逆に、端末22a,端末22bから送信されたメールを他のグループの端末に配送したりする。
【0022】
各メールサーバSv11,Sv21,Sv22や各端末21a,22a,22bは、スプールを圧迫する大容量のメールを受信すると、エラーが発生する。そこで、メールサーバSv11,Sv21,Sv22には、それぞれ、メールの送信を制限する容量(以下、「メール送信制限容量」と称する)が決められている。メールサーバSv11,Sv21,Sv22は、それぞれ、送受信するメールのデータサイズがメール送信制限容量未満であれば、メールを適切に送受信することができる。ここでは、メール送信制限容量は、メールサーバSv11が「15MB」、メールサーバSv21が「20MB」、メールサーバSv22が「10MB」であるものとして説明する。
【0023】
本実施形態1では、スキャナ10は、LAN6を介してメールサーバSv11に接続されているものとして説明する。しかしながら、スキャナ10は、LAN6以外のネットワークを介してメールサーバSv11に接続されていてもよい。
【0024】
なお、メールサーバSv11は、前記した通り、スキャナ10と直接TCPコネクションを確立してメールを送信するメールサーバ(すなわち、「送信側のメールサーバ」)である。一方、メールサーバSv21,Sv22は、送信宛先がメールの送受信に使用するサーバ(以下、「受信側のメールサーバ」と称する)である。また、メールサーバSv11,Sv21,Sv22に割り当てられたホスト名は、特許請求の範囲に記載された「ホスト特定情報」に相当する。また、メールアドレスは、特許請求の範囲に記載された「送信宛先情報」に相当する。以下、メールアドレスを、単に「アドレス」と称する場合もある。
【0025】
(画像送信装置の内部構成)
図2に示すように、スキャナ10は、画像読取部110、操作パネル120、通信部130、制御部140、及び、記憶部150を有している。
【0026】
画像読取部110は、原稿の画像を光学的に読み取って画像データを生成する画像データ生成部である。画像読取部110によって生成された画像データは、後記する画像メモリ153に記憶され、メールの生成時に使用される。
【0027】
操作パネル120は、スキャナ10の操作者(以下、単に「操作者」と称する)によってメールの送信に必要な情報が入力される構成要素である。操作パネル120は、特許請求の範囲に記載された「入力部」に相当する。メールの送信には、送信者のメールアドレスや送信宛先のメールアドレス等の情報が必須である。また、メールの送信には、件名(Subject)や、添付ファイル名(すなわち、添付ファイルとしてメールに添付される画像データの名称)、本文等を指定する情報が必要な場合もある。操作者は、必要に応じて、操作パネル120を操作して、これらの情報をスキャナ10に入力する。以下、操作者によって操作パネル120から入力された情報を、「入力情報」と称する。入力情報は、後記する入力情報記憶部152に記憶され、メールの生成時に使用される。
【0028】
なお、入力情報記憶部152に記憶された入力情報の中の一部(例えば、送信者のメールアドレスや送信宛先のメールアドレス等の情報)は、操作者が意図的に消去又は変更しない限り、不揮発性の記憶手段としての入力情報記憶部152に恒久的に記憶され、次回以降のメールの送信時に、メールの設定情報として、自動的に使用されたり、又は、操作者によって選択的に使用されたりする。
【0029】
通信部130は、LAN6等のネットワークによって通信可能に接続された外部の機器(ここでは、メールサーバSv11)との間で通信を実行する構成要素である。通信部130は、メールの送信時に、記憶部150に予め定められたアカウント(操作者のユーザ名、パスワード等)を用いて、メールサーバSv11に接続し、SMTP(Simple Mail Transfer Protocol)等によって、メールサーバSv11を介して、メールを操作者によって指定された送信宛先に向けて送信する。
【0030】
制御部140は、CPUによって構成されており、後記するプログラム記憶部151に予め記憶された制御プログラムを実行することにより、メール生成部141、メール送信制御部142、及び、受信メール解釈部143として機能する。
【0031】
メール生成部141は、メールを生成する機能手段である。本実施形態1では、メール生成部141は、画像読取部110によって生成された画像データが添付ファイルとして添付されるメールを生成する。その際に、メール生成部141は、操作者によって入力された入力情報や、後記する「送信宛先の送信制限データサイズ」の値に基づいて、メールを生成する。
【0032】
なお、本実施形態1では、スキャナ10は、送信宛先に対応してメールの送信を制限する場合のメールのデータサイズを規定する送信制限データサイズがテーブルデータとして制限サイズ記憶部155に記憶している。以下、送信制限データサイズを表すデータを、「送信制限サイズ情報」と称する。また、テーブルデータを、「送信制限サイズテーブル301(図10参照)」と称する。また、送信制限サイズテーブル301の中の、操作者によって指定された送信宛先に対応する送信制限データサイズを、「送信宛先の送信制限データサイズ」と称する。
【0033】
メール送信制御部142は、画像データ生成部である画像読取部110によって生成された画像データ及びメール生成部141によって生成されたメール(ただし、画像データが添付ファイルとして添付された状態のメール)のいずれか一方のデータサイズの値と、前記した「送信宛先の送信制限データサイズ(すなわち、送信制限サイズテーブル301(図10参照)の中の、操作者によって指定された送信宛先に対応する送信制限データサイズ)」の値とを比較し、比較結果に基づいて、メールの送信を制御する機能手段である。
【0034】
メール送信制御部142は、例えば、画像データ及びメール(ただし、画像データが添付ファイルとして添付された状態のメール)のいずれか一方のデータサイズの値(本実施形態1では、画像データのデータサイズの値)が前記した「送信宛先の送信制限データサイズ」の値以上になる場合に、メールの送信を中止することによって、メールの送信を制御することができる。
【0035】
なお、メール送信制御部142は、例えば、画像データ及びメール(ただし、画像データが添付ファイルとして添付された状態のメール)のいずれか一方のデータサイズの値が前記した「送信宛先の送信制限データサイズ」の値以上になる場合に、メールを送信宛先の送信制限データサイズ未満のサイズに分割して送信することによって、メールの送信を制御する構成にしてもよい。
【0036】
受信メール解釈部143は、通信部130によって受信されたメールの内容を解釈する機能手段である。本実施形態1では、受信メール解釈部143は、通信部130がメールサーバSv11,Sv21,Sv22のいずれかから送信メールの配送エラーの発生を通知するメール(以下、「エラーメール」と称する)を受信した場合に、エラーメールの内容を解釈し、必要に応じて、それによって得られる情報に基づいて、送信制限サイズテーブル301(図10参照)の値を更新する機能を備えている。
【0037】
記憶部150は、ROMやRAMによって構成されており、プログラム記憶部151、入力情報記憶部152、画像メモリ153、生成メール記憶部154、制限サイズ記憶部155、送信可能宛先記憶部156、送信不能宛先記憶部157、及び、送信履歴記憶部158として機能する。
【0038】
プログラム記憶部151は、制御部140を、メール生成部141、メール送信制御部142、及び、受信メール解釈部143として機能させるための制御プログラムが予め記憶される不揮発性の記憶手段である。
【0039】
入力情報記憶部152は、入力情報(すなわち、操作者によって操作パネル120から入力された、メールの送信に必要な情報(例えば、送信者のメールアドレスや送信宛先のメールアドレス等の情報))が記憶される不揮発性の記憶手段である。
【0040】
画像メモリ153は、画像データ生成部である画像読取部110によって生成された画像データが記憶される記憶手段である。画像メモリ153に記憶された画像データは、メール生成部141がメールを生成する際に使用される。
生成メール記憶部154は、メール生成部141によって生成されたメールが記憶される記憶手段である。
【0041】
制限サイズ記憶部155は、前記した「送信制限サイズテーブル301(図10参照)」を記憶する不揮発性の記憶手段である。本実施形態1では、制限サイズ記憶部155に記憶された送信制限サイズテーブル301は、メールの送信時に、メール送信制御部142によって、送信宛先毎に、メールの送信を中止するか否かを判定するための閾値を規定するテーブルデータとして参照される。また、制限サイズ記憶部155に記憶された送信制限サイズテーブル301は、エラーメール(送信メールの配送エラーの発生を通知するメール)を受信した場合に、受信メール解釈部143によって書き換えられるときがある。
【0042】
送信可能宛先記憶部156は、メール送信制御部142によって送信可能と判定された送信宛先のメールアドレスが記憶される記憶手段である。
送信不能宛先記憶部157は、メール送信制御部142によって送信不能と判定された送信宛先のメールアドレスが記憶される記憶手段である。
送信履歴記憶部158は、送信メールの履歴情報(以下、「送信履歴情報」と称する)が記憶される不揮発性の記憶手段である。
【0043】
<画像送信装置の動作>
以下、図3〜図5を参照して、スキャナ10の動作につき説明する。図3〜図5は、それぞれ、実施形態1に係る画像送信装置の動作を示すフローチャートである。ここでは、スキャナ10が様々なサイズのメールをユーザyamadaの端末21a、ユーザsuzukiの端末22a、及び、ユーザtanakaの端末22bのいずれか1乃至複数に送信する場合を想定して、スキャナ10の動作を説明する。
【0044】
なお、各装置は、図示せぬタイマによって計測された時間に基づいて動作する。また、各装置の動作は、各装置の記憶部に読み出し自在に予め格納されたプログラムによって規定されており、各装置の制御部によって実行される。また、装置間の通信は、受信側の装置が通信によって受信されたデータを記憶部に一旦格納し、その後に、データを記憶部から読み出すことによって、行われる。また、各データは、記憶部に読み出し自在に一旦格納されてから、その後の処理を行う所要の構成要素に出力される。以下、これらの点については、情報処理では常套手段であるので、その詳細な説明を省略する。
【0045】
図3は、メール送信時のスキャナ10の動作を示している。ここでは、スキャナ10が、原稿の画像を読み取って画像データを生成し、その画像データをメールに添付して、操作者によって指定された送信宛先に向けて送信するものとして説明する。
【0046】
この動作では、操作者が、まず、原稿を画像読取部110にセットし、次に、操作パネル120を操作して、メールの送信に必要な情報(例えば、送信宛先のメールアドレス等)を入力情報としてスキャナ10に入力する。このとき、入力情報は、入力情報記憶部152に記憶される。続いて、操作者は、操作パネル120を操作して、原稿の画像の読み取りをスキャナ10に指示する。これに応答して、スキャナ10が動作を開始する。
【0047】
まず、スキャナ10は、画像読取部110が、セットされた原稿の画像を光学的に読み取る(S12)。このとき、画像読取部110は、読み取られた原稿の画像データを生成し、生成された画像データを画像メモリ153に出力する。これにより、生成された画像データが画像メモリ153に一時的に記憶される。画像メモリ153に記憶された画像データは、後記するS24でメールが送信された後に、制御部140(例えば、メール送信制御部142)によって消去される。
【0048】
次に、スキャナ10は、メール生成部141が、画像メモリ102に一時的に記憶された画像データを読み出し、読み出された画像データに基づいて、送信する画像データのデータサイズ(以下、「送信サイズ」と称する)の値を決定する(S14)。
【0049】
次に、メール生成部141は、入力情報記憶部152から、操作者によって入力された、送信宛先のメールアドレスを含む入力情報を読み出し、読み出された入力情報に基づいて、メール(本文データ)を生成し(S16)、生成されたメールを生成メール記憶部154に出力する。これにより、生成されたメール(本文データ)が生成メール記憶部154に一時的に記憶される。
【0050】
この後、スキャナ10は、メール送信制御部142(又は、メール生成部141)が、入力情報記憶部152から、送信宛先のメールアドレスを含む入力情報を読み出し、メールの送信宛先の決定処理を行う(S18)。
【0051】
以下、図4を参照して、S18の処理(「宛先の決定」処理)の詳細につき説明する。図4は、S18の処理(「宛先の決定」処理)時のスキャナ10の動作を示している。
図4に示すように、メール送信制御部142は、まず、送信可能か否かを判定していない宛先があるか否かを判定する(S32)。
【0052】
S32の判定で、判定していない宛先があると判定された場合(“Yes”の場合)に、メール送信制御部142は、その宛先を「判定中の宛先」と見なし、制限サイズ記憶部155から送信制限サイズテーブル301(図10参照)を読み出して、判定中の宛先に対応する、前記した「送信宛先の送信制限データサイズ(すなわち、送信制限サイズテーブル301の中の、操作者によって指定された送信宛先に対応する送信制限データサイズ)」の値を確認する(S34)。
【0053】
そして、メール送信制御部142は、S14で決定された「送信サイズ」の値(ここでは、画像データのデータサイズの値)と、S34で確認された、判定中の宛先に対応する「送信宛先の送信制限データサイズ」の値とを比較して、比較結果に基づいて、メールの送信を制御する。例えば、メール送信制御部142は、比較結果に基づいて、メールの送信が可能か否かを判定する(S36)。
【0054】
S36の判定では、「送信サイズ」の値が判定中の宛先に対応する「送信宛先の送信制限データサイズ」の値未満である場合に、メールの送信が可能であると判定される。一方、「送信サイズ」の値が判定中の宛先に対応する「送信宛先の送信制限データサイズ」の値以上である場合に、メールの送信が不能であると判定される。
【0055】
S36の判定で、メールの送信が可能であると判定された場合(“Yes”の場合)に、すなわち、「送信サイズ」の値が判定中の宛先に対応する「送信宛先の送信制限データサイズ」の値未満である場合に、メール送信制御部142は、判定中の宛先のメールアドレス情報を、送信可能な宛先のメールアドレス情報(以下、「送信可能アドレス情報(図示せず)」と称する)として、送信可能宛先記憶部156に記憶させる(S38)。この後、処理は、S32に戻る。
【0056】
なお、送信可能宛先記憶部156に記憶された「送信可能アドレス情報」は、図3に示すS24の処理(「メール送信」処理)時に、メールヘッダに組み込まれて、メールの送信に利用される。また、送信可能宛先記憶部156に記憶された「送信可能アドレス情報」は、所定のタイミング(例えば、図3に示すS24の処理(「メール送信」処理)が完了したタイミング)で、制御部140(例えば、メール送信制御部142)によって消去される。
【0057】
一方、S36の判定で、メールの送信が不能であると判定された場合(“No”の場合)に、すなわち、「送信サイズ」の値が判定中の宛先に対応する「送信宛先の送信制限データサイズ」の値以上である場合に、メール送信制御部142は、判定中の宛先のメールアドレス情報を、送信不能な宛先のメールアドレス情報(以下、「送信不能アドレス情報(図示せず)」と称する)として、送信不能宛先記憶部157に記憶させる。また、このとき、メール送信制御部142が、送信不能な宛先のメールアドレスに対応する送信制限データサイズを、更新登録する送信制限データサイズ(以下、「更新送信制限データサイズ」と称する)として、制限サイズ記憶部155に記憶された送信制限サイズテーブル301(図10及び図11参照)に追加登録する(S40)。この後、処理は、S32に戻る。
【0058】
なお、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」は、図3に示すS22の処理(「送信不能アドレス通知」処理)時に、操作パネル120に表示されて、送信不能な宛先の操作者への通知に利用される。また、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」は、所定のタイミング(例えば、図3に示すS12の処理(「原稿読み取り」処理)が新たに行われるタイミング)で、制御部140(例えば、メール送信制御部142)によって消去される。
【0059】
S38又はS40の後、処理は、S32に戻る。その結果、スキャナ10は、S32の判定で、判定していない宛先がない(“No”)と判定されるまで、S32〜S40の処理を繰り返す。そして、S32の判定で、判定していない宛先がないと判定された場合(“No”の場合)に、スキャナ10は、S18の処理(「宛先の決定」処理)を終了する。その結果、処理は、S20に進む。
【0060】
S18の処理(「宛先の決定」処理)の後、図3に示すように、スキャナ10は、メール送信制御部142が、送信不能な宛先があるか否かを判定する(S20)。S20の判定は、メール送信制御部142が、図4に示すS40の処理(「送信不能な宛先に追加」処理)で、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」があるか否かを判定することによって、行われる。
【0061】
S20の判定で、送信不能な宛先があると判定された場合(“Yes”の場合)に、すなわち、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」がある場合に、メール送信制御部142は、「送信不能アドレス情報」を操作パネル120に表示させる。これによって、スキャナ10は、送信不能な宛先のメールアドレスを操作者に通知する(S22)。この後、スキャナ10は、一連のルーチンの処理を終了する。
【0062】
なお、S22では、メール送信制御部142が、「送信不能アドレス情報」及び「送信可能アドレス情報」を操作パネル120に表示させるとともに、送信可能な宛先へのメールの送信を行うか否かを操作パネル120に表示させて、メールの送信を行うか否かを操作者に選択させるようにしてもよい。この場合に、操作者が「メールの送信」を選択することにより、メール送信制御部142は、メールを送信可能な宛先に送信した後に、一連のルーチンの処理を終了する。また、この場合に、操作者が「メールを送信せず」を選択することにより、メール送信制御部142は、メールを送信することなく、一連のルーチンの処理を終了する。
【0063】
一方、S20の判定で、送信不能な宛先がないと判定された場合(“No”の場合)に、すなわち、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」がない場合に、メール送信制御部142は、生成メール記憶部154からメール(本文データ)を読み出し、画像メモリ153から画像データを読み出し、さらに、送信可能宛先記憶部156から送信可能アドレス情報を読み出す。
【0064】
そして、メール送信制御部142は、エンベロープ識別子(ENVID)をメールに割り当て、そのエンベロープ識別子と送信可能アドレス情報とに基づいてメールヘッダを生成して、生成されたメールヘッダをメールの本文データに添付するとともに、画像データをRFC(Request For Comments)に規定されたMIME(Multipurpose Internet Mail Extension)形式に変換して、変換された画像データを添付ファイルとしてメールの本文データに添付する。これによって、メールが完成する。
【0065】
メール送信制御部142は、完成されたメールを通信部130に出力する。通信部130は、メール送信制御部142からメールが入力されると、メールサーバSv11を介して、メールを、操作者によって指定された送信宛先に向けて送信する(S24)。
【0066】
なお、本実施形態1では、スキャナ10は、画像データのデータサイズを「送信サイズ」として利用している。しかしながら、スキャナ10は、メール(ただし、画像データが添付ファイルとして添付された状態のメール)のデータサイズを「送信サイズ」として利用することも可能である。この場合に、S14の処理(「送信サイズ決定」の処理)は、S16の処理(「メール生成」処理)の後に、行われる。
【0067】
また、スキャナ10は、好ましくは、メールを送信した場合に、送信宛先のメールアドレスやメールのデータサイズの値等の情報を送信履歴情報として送信履歴記憶部158に記憶させておき、操作者が操作パネル120を操作することにより、送信履歴情報を自在に操作パネル120に表示させられるようにするとよい。
【0068】
S24の処理(「メール送信」処理)の後、送信メールが適正に送信宛先に配送されない場合に、送信メールの配送エラーの発生を通知するエラーメールが、メールサーバSv11,Sv21,Sv22のいずれかからスキャナ10に向けて送信される。
【0069】
図5は、エラーメール受信時のスキャナ10の動作を示している。ここでは、スキャナ10が、メールサーバSv11,Sv21,Sv22のいずれかからエラーメールを受信して、エラーメールの内容を解析することによって得られる情報に基づいて、送信制限サイズテーブル301(図10参照)に登録されている送信制限サイズ情報を更新するものとして説明する。
【0070】
図5に示すように、スキャナ10は、まず、通信部130が、メールサーバSv11,Sv21,Sv22のいずれかから送信されたエラーメールを受信する(S52)。
【0071】
スキャナ10は、エラーメールを受信すると、受信メール解釈部143が、S24のメールの送信時に送信メールに割り当てたエンベロープ識別子がエラーメールに含まれているか否かを判定する(S54)。
【0072】
S54の判定で、エンベロープ識別子がエラーメールに含まれている場合(“Yes”の場合)に、受信メール解釈部143は、送信履歴記憶部158からそのエンベロープ識別子に対応する送信メールの送信履歴情報を読み出し、読み出された送信メールの送信履歴情報に基づいて、エラーメールに対応する送信メール(以下、「配送エラー送信メール」と称する)のデータサイズを特定する(S56)。
【0073】
次に、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル301(図10参照)を読み出し、更新送信制限データサイズ(更新登録する送信制限データサイズ)として、エラーメールで配送エラーが通知された送信宛先(以下、「配送エラーの送信宛先」と称する)のメールアドレスに対応付けられた送信制限データサイズ(以下、「配送エラーの送信宛先の送信制限データサイズ」と称する)の値を、S56で特定された、配送エラー送信メールのデータサイズの値に更新する(S58)。これにより、スキャナ10は、一連のルーチンの処理を終了する。
【0074】
なお、配送エラーの送信宛先のメールアドレスは、エラーメール及びS56で読み出された送信履歴情報の中に含まれている。受信メール解釈部143は、運用に応じて、エラーメール又は送信履歴情報から、配送エラーの送信宛先のメールアドレスを取得する。
【0075】
このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル301に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、S56で特定された、配送エラー送信メールのデータサイズの値を、配送エラーの送信宛先のメールアドレスに対応付けて、送信制限サイズテーブル301に新規に登録する。
【0076】
一方、S54の判定で、エンベロープ識別子がエラーメールに含まれていない場合(“No”の場合)に、スキャナ10は、一連のルーチンの処理を終了する。
【0077】
<具体的な動作例>
以下、いくつかの具体的な動作例をあげて、スキャナ10の詳細な動作を説明する。なお、スキャナ10のコマンドを送受信する動作は、メール送信制御部142(図2参照)によって行われ、また、スキャナ10の外部から受信されたメールを解釈する動作は、受信メール解釈部143(図2参照)によって行われるものとして説明する。また、ここでは、「送信メールのサイズ」が「画像データのサイズ」と実質的に等価であるものとして説明する。また、ここでは、単に「メールサーバ」と称する場合は、メールの配送に関わるメールサーバ全般を意味しているものとする。
【0078】
(動作例1:スキャナ10が「5MB」のメールをユーザyamadaの端末21a及びユーザsuzukiの端末22aに送信する場合の動作)
以下、図1及び図6を参照して、スキャナ10が「5MB」のメールをユーザyamadaの端末21a及びユーザsuzukiの端末22aに送信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。図6は、実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。ここでは、スキャナ10のホスト名を「example.com」とし、メールサーバSv11のホスト名を「mail.isp1.com」として説明する。
【0079】
まず、スキャナ10は、メールサーバSv11に対して、TCP(Transmission Control Protocol)コネクションを確立する。
TCPコネクションの確立は、以下の手順によって行われる。
【0080】
まず、スキャナ10が、「SYN」コマンドをメールサーバSv11に送信する(S110)。
メールサーバSv11は、スキャナ10から「SYN」コマンドを受信すると、「SYN・ACK」コマンドをスキャナ10に返信する(S111)。
【0081】
スキャナ10は、メールサーバSv11から「SYN・ACK」コマンドを受信すると、「ACK」コマンドをメールサーバSv11に送信する(S112)。
この時点で、スキャナ10とメールサーバSv11との間に、TCPコネクションが確立される。
【0082】
メールサーバSv11は、スキャナ10から「ACK」コマンドを受信すると、例えば、「220 mail.isp1.com Service ready」という応答をスキャナ10に返す(S113)。
スキャナ10は、応答を受信すると、例えば、「HELO example.com」というコマンドをメールサーバSv11に送信し、接続の可否をメールサーバSv11に問い合わせる(S114)。「HELO」コマンドは、接続の可否を問うコマンドである。
【0083】
メールサーバSv11は、スキャナ10との接続が可能である場合に、例えば、「250−example.com ¥n 250−DSN」(¥nは改行を示す)という応答をスキャナ10に返す(S115)。この応答は、メールサーバSv11がDSN(配送通知:Deliver State Notification)をサポートしていることを示している。DSNをサポートしているメールサーバは、メールの送信元に対して、受信されたメールをどのように処理したのかをメールで通知することができる。
【0084】
次に、スキャナ10は、メールの送信元としての自身のメールアドレスをメールサーバSv11に送信する(S116)。その際に、スキャナ10は、例えば、「MAIL FROM:<scan@example.com> ENVID=SCAN0001」というコマンドを使用する。「scan@example.com」は、メールの送信元としての自身のメールアドレスを表している。「ENVID=SCAN0001」は、メールに割り当てられた固有のエンベロープ識別子(ENVID)が「SCAN0001」であることを表している。メールサーバは、DSNによってメールの処理状況をメールの送信元に通知する際に、このエンベロープ識別子を通知メールに含める。
【0085】
メールサーバSv11は、メールの送信元であるスキャナ10に接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10に返す(S117)。
【0086】
次に、本動作例1では、スキャナ10は、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv11に送信する(S118)。その際に、スキャナ10は、例えば、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822;yamada@company1.com」というコマンドを使用する。「RCPT TO:<yamada@company1.com>」は、メールの送信宛先のメールアドレスが「yamada@company1.com」であることを表している。「NOTIFY」は、いつ通知を送信するのかを表している。また、「NOTIFY=FAILURE」は、メールの配送エラーが発生した場合にのみ、メールサーバが通知メールとしてのエラーメールを送信元(ここでは、スキャナ10)に送信することを指定している。「ORCPT=rfc822;yamada@company1.com」は、オリジナル受信者(ORCPT)を表している。
【0087】
メールサーバSv11は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10に返す(S119)。
【0088】
次に、本動作例1では、スキャナ10は、ユーザsuzukiの端末22aにもメールを送信するために、メールの送信宛先としてユーザsuzukiの端末22aを指定する情報をメールサーバSv11に送信する(S120)。その際に、スキャナ10は、例えば、S118で使用したコマンドに類似する、「RCPT TO:<suzuki@company2.com> NOTIFY=FAILURE ORCPT=rfc822;suzuki@company2.com」というコマンドを使用する。「RCPT TO:<suzuki@company2.com>」は、メールの送信宛先のメールアドレスが「suzuki@company2.com」であることを表している。
【0089】
メールサーバSv11は、ユーザsuzukiの端末22aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10に返す(S121)。
この時点で、メールの送信元、及び、メールの送信宛先が決まる。
【0090】
次に、スキャナ10は、メールをメールサーバSv11に送信する。その際に、スキャナ10は、エンベロープ識別子(ENVID)、メールの送信元、及び、メールの送信宛先等の情報を含むメールヘッダを生成して、生成されたメールヘッダをメールの本文データに添付する。また、スキャナ10は、画像データをRFCに規定されたMIME(Multipurpose Internet Mail Extension)形式に変換し、変換された画像データを添付ファイルとしてメールの本文データに添付する。そして、スキャナ10は、メール(メールヘッダ及び変換された画像データが添付されたメール)をメールサーバSv11に送信するために、「DATA」コマンドをメールサーバSv11に送信する(S122)。「DATA」コマンドは、データの送信を開始するためのコマンドである。
【0091】
メールサーバSv11は、メールが受信できる場合に、例えば、「354 Start mail input; end with<CRLF>.<CRLF>」という応答をスキャナ10に返す(S123)。「CRLF」は、空白行(キャリッジリターン及びラインフィード)を表す制御文字である。
【0092】
スキャナ10は、メールサーバSv11から応答が受信されると、メールサーバSv11を介して、所定の送信宛先(ここでは、ユーザyamadaの端末21a及びユーザsuzukiの端末22a)に向けてメール(「メールヘッダ、本文、画像」)の送信を開始する(S124)。ここでは、メールの送信が正常に終了したものとする。
【0093】
スキャナ10は、全てのメールの送信が正常に終了すると、例えば、「.<CR><LF>」というデータ(1つのピリオドの後に改行コードが続くデータ)をメールサーバSv11に送信する(S125)。
【0094】
メールサーバSv11は、スキャナ10からデータを受信すると、例えば、「250 Message accepted」という応答をスキャナ10に返す(S126)。
【0095】
スキャナ10は、メールサーバSv11から応答を受信すると、接続終了指示として、「QUIT」コマンドをメールサーバSv11に送信する(S127)。
メールサーバSv11は、スキャナ10から接続終了指示を受信すると、接続終了指示に対する応答として、例えば、「221 goodbye」という応答をスキャナ10に返す(S128)。
【0096】
スキャナ10は、メールサーバSv11から応答を受信すると、TCPコネクションを切断するために、「FIN」コマンドをメールサーバSv11に送信する(S129)。「FIN」コマンドは、TCPコネクションの切断を指示するコマンドである。
メールサーバSv11は、スキャナ10から「FIN」コマンドを受信すると、「FIN・ACK」コマンドをスキャナ10に返信する(S130)。
【0097】
スキャナ10とメールサーバSv11との間のTCPコネクションは、スキャナ10がメールサーバSv11から「FIN・ACK」コマンドを受信することにより、切断される。
【0098】
なお、本動作例1では、送信メールのサイズが「5MB」となっている。これに対して、図1に示すように、スキャナ10がメールの送信に使用するメールサーバSv11のメール送信制限容量は「15MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっており、ユーザsuzukiの端末22aがメールの受信に使用するメールサーバSv22のメール送信制限容量が「10MB」となっている。
【0099】
したがって、本動作例1では、送信メールのサイズ(5MB)が、メールサーバSv11のメール送信制限容量(15MB)未満となっており、また、メールサーバSv21のメール送信制限容量(20MB)未満となっており、さらに、メールサーバSv22のメール送信制限容量(10MB)未満となっている。そのため、本動作例1では、全てのメールサーバSv11,Sv21,Sv22が、スキャナ10から送信された「5MB」のメールを受信することができる。その結果、メールは、ユーザyamadaの端末21a及びユーザsuzukiの端末22aに正常に配送される。
【0100】
(動作例2:スキャナ10が「12MB」のメールをユーザyamadaの端末21a及びユーザtanakaの端末22bに送信する場合の動作)
以下、図1及び図7を参照して、スキャナ10が「12MB」のメールをユーザyamadaの端末21a及びユーザtanakaの端末22bに送信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。図7は、実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0101】
スキャナ10がメールサーバSv11との間でTCPコネクションを確立してから、スキャナ10がメールサーバSv11との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0102】
次に、スキャナ10は、メールサーバSv11との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv11に送信する(S210)。その際に、スキャナ10は、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0002」というコマンドを使用する。「ENVID=SCAN0002」は、エンベロープ識別子が「SCAN0002」であることを表している。
【0103】
メールサーバSv11は、メールの送信元であるスキャナ10に接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10に返す(S211)。
【0104】
次に、本動作例2では、スキャナ10は、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv11に送信する(S212)。その際に、スキャナ10は、例えば、S118と同様に、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822,yamada@company1.com」というコマンドを使用する。
【0105】
メールサーバSv11は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10に返す(S213)。
【0106】
次に、本動作例2では、スキャナ10は、ユーザtanakaの端末22bにもメールを送信するために、メールの送信宛先としてユーザtanakaの端末22bを指定する情報をメールサーバSv11に送信する(S214)。その際に、スキャナ10は、例えば、S118で使用したコマンドに類似する、「RCPT TO:<tanaka@company2.com> NOTIFY=FAILURE ORCPT=rfc822;tanaka@company2.com」というコマンドを使用する。「RCPT TO:<tanaka@company2.com>」は、メールの送信宛先のメールアドレスが「tanaka@company2.com」であることを表している。
【0107】
S214以降の、スキャナ10がメールサーバSv11との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0108】
なお、本動作例2では、送信メールのサイズが「12MB」となっている。これに対して、図1に示すように、スキャナ10がメールの送信に使用するメールサーバSv11のメール送信制限容量は「15MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっており、ユーザtanakaの端末22bがメールの受信に使用するメールサーバSv22のメール送信制限容量が「10MB」となっている。
【0109】
したがって、本動作例2では、送信メールのサイズ(12MB)が、メールサーバSv22のメール送信制限容量(10MB)以上となっている。そのため、本動作例2では、メールサーバSv22が、スキャナ10から送信された「12MB」のメールを受信することができない。したがって、メールサーバSv22が、DSNによる通知メールとしてのエラーメールをスキャナ10(scan@example.com)宛てに送信する。
【0110】
以下、図8を参照して、スキャナ10がメールサーバSv11を介してメールサーバSv22から送信されたエラーメールを受信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。図8は、実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0111】
まず、スキャナ10は、メールサーバSv11に対して、TCP(Transmission Control Protocol)コネクションを確立する。図8に示す例では、スキャナ10は、メールサーバSv11からメールを取得する通信プロトコルとして、POP3(Post Office Protocol Version3)を用いている。
TCPコネクションの確立は、以下の手順によって行われる。
【0112】
まず、スキャナ10が、「SYN」コマンドをメールサーバSv11に送信する(S310)。
メールサーバSv11は、スキャナ10から「SYN」コマンドを受信すると、「SYN・ACK」コマンドをスキャナ10に返信する(S311)。
【0113】
スキャナ10は、メールサーバSv11から「SYN・ACK」コマンドを受信すると、「ACK」コマンドをメールサーバSv11に送信する(S312)。
この時点で、スキャナ10とメールサーバSv11との間に、TCPコネクションが確立される。
【0114】
メールサーバSv11は、スキャナ10から「ACK」コマンドを受信すると、例えば、「+OK POP server ready」という応答をスキャナ10に返す(S313)。
スキャナ10は、応答を受信すると、「USER scan」というコマンドをメールサーバSv11に送信して(S314)、スキャナ10とメールサーバSv11との接続に必要なユーザ名(ここでは、「scan」)をメールサーバSv11に通知する。
【0115】
メールサーバSv11は、スキャナ10から送信されたユーザ名を認識すると、例えば、「+OK User scan recognized」という応答をスキャナ10に返す(S315)。
【0116】
次に、スキャナ10は、「PASS passwd」というコマンドをメールサーバSv11に送信して(S316)、スキャナ10とメールサーバSv11との接続に必要なパスワード(「passwd」)をメールサーバSv11に通知する。
【0117】
メールサーバSv11は、スキャナ10から送信されたパスワードを認証すると、例えば、「+OK Welcome scan」という応答をスキャナ10に返す(S317)。
ここまでの処理により、スキャナ10は、メールサーバSv11から自分宛てのメールを取得するための準備が終了する。
【0118】
次に、スキャナ10は、「STAT」コマンドをメールサーバSv11に送信して(S318)、メールサーバSv11に届いた自分宛てのメールの有無をメールサーバSv11に問い合わせる。
【0119】
メールサーバSv11は、スキャナ10から「STAT」コマンドを受信すると、スキャナ10宛てのメールの受信の有無を確認し、受信メールの確認結果として、例えば、「+OK 1 750」という応答をスキャナ10に返す(S319)。この応答は、「メッセージ番号」が「1」で、サイズが750バイトのメールが届いていることを示している。
【0120】
スキャナ10は、自分宛てのメールがメールサーバSv11に届いている場合に、メールサーバSv11からメールを受信する。例えば、「メッセージ番号」が「1」のメールを受信する場合に、スキャナ10は、「メッセージ番号」が「1」のメールの送信指示として、「RETR 1」というコマンドをメールサーバSv11に送信する(S320)。
【0121】
メールサーバSv11は、スキャナ10から「RETR」コマンドを受信すると、例えば、「+OK 750 octets」という応答をスキャナ10に送信し、続いて、メールメッセージの全てをスキャナ10に送信する(S321)。
【0122】
スキャナ10は、メールの受信が完了すると、受信が完了したメールの削除を指示する削除指示をメールサーバSv11に送信する(S322)。その際に、スキャナ10は、例えば、「DELE 1」というコマンドを使用する。「DELE 1」は、「メッセージ番号」が「1」のメールの削除を指示するコマンドである。
【0123】
メールサーバSv11は、スキャナ10から削除指示を受信すると、削除指示に対する応答として、例えば、「+OK Message 1 marked for deletion」という応答をスキャナ10に返す(S323)。
【0124】
スキャナ10は、メールサーバSv11から削除指示に対する応答を受信すると、接続終了指示として、「QUIT」コマンドをメールサーバSv11に送信する(S324)。
メールサーバSv11は、スキャナ10から接続終了指示を受信すると、接続終了指示に対する応答として、例えば、「+OK」という応答をスキャナ10に返す(S325)。
【0125】
スキャナ10は、メールサーバSv11から接続終了指示に対する応答を受信すると、TCPコネクションの切断するために、「FIN」コマンドをメールサーバSv11に送信する(S326)。「FIN」コマンドは、TCPコネクションの切断を指示するコマンドである。
メールサーバSv11は、スキャナ10から「FIN」コマンドを受信すると、「ACK」コマンドをスキャナ10に返信し(S327)、続いて、スキャナ10に対して、「FIN」コマンドを送信する(S328)。
【0126】
スキャナ10は、メールサーバSv11から「FIN」コマンドを受信すると、「ACK」コマンドをメールサーバSv11に送信する(S329)。
スキャナ10とメールサーバSv11との間のTCPコネクションは、スキャナ10が「ACK」コマンドをメールサーバSv11に送信することにより、切断される。
【0127】
図9は、実施形態1で用いるエラーメールの一例を示す図である。図9は、メールサーバSv22からスキャナ10に送信されたエラーメール202の一例を示している。
【0128】
図9に示す例において、3行目の「Subject」で始まる行は、エラーメール202が「tanaka@company2.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
11行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0002」の送信メールの配送に失敗したことを示している。
【0129】
17行目の「Reporting−MTA」で始まる行は、エラーメール202がメールサーバSv22(mail.company2.com)から送信されたメールであることを示している。「MTA」は、メール転送エージェント(Mail Transfer Agent)を意味している。
18行目の「Original−Envelope−ID」で始まる行は、エラーメール202がエンベロープ識別子「SCAN0002」の送信メールに対する配送通知であることを示している。
【0130】
23行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。スキャナ10は、この情報から、送信メールが送信制限サイズ以上であることを判別することができる。
【0131】
24行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
25行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
27行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0132】
スキャナ10は、例えば、図9に示すエラーメール202を受信すると、受信メール解釈部143(図2参照)が、エラーメール202の18行目の「Original−Envelope−ID」で始まる行から、配送エラー送信メール(ここでは、エラーメール202に対応する送信メール)の情報として、エンベロープ識別子「SCAN0002」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0002」の送信メールの送信履歴情報を読み出す。
【0133】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0002」の送信メールのデータサイズの値が「12MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル301(図10参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル301の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0002」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル301に登録された送信制限データサイズの値)を、エンベロープ識別子「SCAN0002」の送信メールのデータサイズの値である「12MB」に更新する。
【0134】
なお、このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル301に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、配送エラー送信メール(ここでは、エンベロープ識別子「SCAN0002」の送信メール)のデータサイズの値「12MB」を、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0002」の送信メールの送信に使用されたメールアドレス)に対応付けて、送信制限サイズテーブル301に新規に登録する。
【0135】
その結果、更新後の送信制限サイズテーブル301は、例えば、図10に示すようになる。図10は、実施形態1で用いる送信制限サイズテーブルの一例を示す図である。図10に示す例では、送信制限サイズテーブル301には、配送エラーの送信宛先のメールアドレス「tanaka@company2.com」と、配送エラー送信メールのデータサイズの値「12MB」とが対応付けられて登録されている。
【0136】
(動作例3:スキャナ10が「14MB」のメールをユーザyamadaの端末21a及びユーザsuzukiの端末22aに送信する場合の動作)
以下、スキャナ10が「14MB」のメールをユーザyamadaの端末21a及びユーザsuzukiの端末22aに送信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。
【0137】
ユーザsuzukiの端末22a(図1参照)は、メールアドレス「suzuki@company2.com」のドメイン(@より後ろの部分)が、制限サイズ記憶部155に記憶されているユーザtanakaの端末22bのメールアドレス「tanaka@company2.com」のドメインと同一である。
【0138】
そのため、スキャナ10は、メール送信制御部142が、メールの送信前に、送信宛先の決定処理(図3及び図4のS18参照)時に、メールアドレス「suzuki@company2.com」に対して、メールアドレス「tanaka@company2.com」と同様に、送信制限データサイズとして「12MB」の送信制限を課す。
【0139】
その結果、「14MB」のメールは、データサイズの値がユーザsuzukiの端末22a(メールアドレス「suzuki@company2.com」)に対して課せられた送信制限データサイズの値「12MB」以上となる。そのため、「14MB」のメールは、ユーザsuzukiの端末22aに適正に送信されない。
【0140】
そこで、スキャナ10は、「14MB」のメールを送信する場合に、図4に示すS40で、メール送信制御部142が、ユーザsuzukiの端末22aを送信不能な宛先と見なし、ユーザsuzukiの端末22aのメールアドレス「suzuki@company2.com」を「送信不能アドレス情報」として送信不能宛先記憶部157に記憶させる。また、このとき、メール送信制御部142が、ユーザsuzukiの端末22aのメールアドレス「suzuki@company2.com」に対応する送信制限データサイズを、制限サイズ記憶部155に記憶された送信制限サイズテーブル301(図10及び図11参照)に追加登録する。なお、ユーザsuzukiの端末22aのメールアドレス「suzuki@company2.com」に対応する送信制限データサイズの値は、メールアドレス「suzuki@company2.com」に対して課せられた送信制限データサイズの値の「12MB」となる。
【0141】
その結果、スキャナ10は、図3に示すS22で、メール送信制御部142が、メールをユーザsuzukiの端末22aに送信せずに、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」を操作パネル120に表示させる。これによって、スキャナ10は、送信不能な宛先のメールアドレスを操作者に通知する。
【0142】
なお、本実施形態1では、スキャナ10は、送信不能な宛先が1件でもある場合に、メールの送信を中止する。そのため、本動作例3では、スキャナ10は、送信不能な宛先としてユーザsuzukiの端末22aが存在するので、メールをユーザyamadaの端末21aにも送信しない。したがって、スキャナ10は、メールを送信しないので、メールサーバSv11との間で通信を行わない。
【0143】
また、スキャナ10は、ユーザsuzukiの端末22aのメールアドレス「suzuki@company2.com」に対応する送信制限データサイズが送信制限サイズテーブル301に追加登録されることにより、送信制限サイズテーブル301が、例えば、図10に示す状態から、図11に示す状態に変化する。図11は、実施形態1で用いる送信制限サイズテーブルの一例を示す図である。
【0144】
図11に示す例では、送信制限サイズテーブル301は、メールアドレス「suzuki@company2.com」に対して課せられた送信制限データサイズの値の「12MB」が、ユーザsuzukiの端末22aのメールアドレス「suzuki@company2.com」に対応付けて記憶されている。
【0145】
なお、ユーザyamadaの端末21aへのメールの送信不能は、同報送信の宛先であるユーザsuzukiの端末22aへのメールの送信制限によるものである。そのため、ユーザyamadaの端末21aに対する送信制限データサイズは、送信制限サイズテーブル301に追加登録されない。
【0146】
(動作例4:スキャナ10が「16MB」のメールをユーザyamadaの端末21aに送信する場合の動作)
以下、図1及び図12を参照して、スキャナ10が「16MB」のメールをユーザyamadaの端末21aに送信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。図12は、実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0147】
スキャナ10がメールサーバSv11との間でTCPコネクションを確立してから、スキャナ10がメールサーバSv11との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0148】
次に、スキャナ10は、メールサーバSv11との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv11に送信する(S410)。その際に、スキャナ10は、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0004」というコマンドを使用する。「ENVID=SCAN0004」は、エンベロープ識別子が「SCAN0004」であることを表している。
【0149】
メールサーバSv11は、メールの送信元であるスキャナ10に接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10に返す(S411)。
【0150】
次に、本動作例4では、スキャナ10は、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv11に送信する(S412)。その際に、スキャナ10は、例えば、S118と同様に、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822;yamada@company1.com」というコマンドを使用する。
【0151】
メールサーバSv11は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10に返す(S413)。
【0152】
S413以降の、スキャナ10がメールサーバSv11との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0153】
なお、本動作例4では、送信メールのサイズが「16MB」となっている。これに対して、図1に示すように、スキャナ10がメールの送信に使用するメールサーバSv11のメール送信制限容量は「15MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっている。
【0154】
したがって、本動作例4では、送信メールのサイズ(16MB)が、メールサーバSv21のメール送信制限容量(20MB)未満となっているものの、メールサーバSv11のメール送信制限容量(15MB)以上となっている。そのため、本動作例4では、メールサーバSv11が、スキャナ10から送信された「16MB」のメールを受信することができない。したがって、メールサーバSv11が、DSNによる通知メールとしてのエラーメールをスキャナ10(scan@example.com)宛てに送信する。このときのスキャナ10とメールサーバSv11との間のシーケンスは、図8に示す通りである。
【0155】
図13は、実施形態1で用いるエラーメールの一例を示す図である。図13は、メールサーバSv11からスキャナ10に送信されたエラーメール204の一例を示している。
【0156】
図13に示す例において、3行目の「Subject」で始まる行は、エラーメール204が「yamada@company1.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
11行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0004」の送信メールの配送に失敗したことを示している。
【0157】
17行目の「Reporting−MTA」で始まる行は、エラーメール204がメールサーバSv11(mail.isp1.com)から送信されたメールであることを示している。
18行目の「Original−Envelope−ID」で始まる行は、エラーメール204がエンベロープ識別子「SCAN0004」の送信メールに対する配送通知であることを示している。
【0158】
23行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。
【0159】
24行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
25行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
27行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0160】
スキャナ10は、例えば、図13に示すエラーメール204を受信すると、受信メール解釈部143(図2参照)が、エラーメール204の18行目の「Original−Envelope−ID」で始まる行から、配送エラー送信メール(ここでは、エラーメール204に対応する送信メール)の情報として、エンベロープ識別子「SCAN0004」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0004」の送信メールの送信履歴情報を読み出す。
【0161】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0004」の送信メールのデータサイズの値が「16MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル301(図11参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル301の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0004」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル301に登録された送信制限データサイズの値)を、エンベロープ識別子「SCAN0004」の送信メールのデータサイズの値である「16MB」に更新する。
【0162】
なお、このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル301に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、配送エラー送信メール(ここでは、エンベロープ識別子「SCAN0004」の送信メール)のデータサイズの値「16MB」を、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0004」の送信メールの送信に使用されたメールアドレス)に対応付けて、送信制限サイズテーブル301に新規に登録する。
【0163】
その結果、更新後の送信制限サイズテーブル301は、例えば、図11に示す状態から、図14に示す状態に変化する。図14は、実施形態1で用いる送信制限サイズテーブルの一例を示す図である。図14に示す例では、送信制限サイズテーブル301には、配送エラーの送信宛先のメールアドレス「yamada@company1.com」と、配送エラー送信メールのデータサイズの値「16MB」とが対応付けられて登録されている。
【0164】
(動作例5:スキャナ10が「11MB」のメールをユーザsuzukiの端末22aに送信する場合の動作)
以下、図1及び図15を参照して、スキャナ10が「11MB」のメールをユーザsuzukiの端末22aに送信する場合の、スキャナ10及びメールサーバSv11の動作を説明する。図15は、実施形態1に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0165】
スキャナ10がメールサーバSv11との間でTCPコネクションを確立してから、スキャナ10がメールサーバSv11との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0166】
次に、スキャナ10は、メールサーバSv11との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv11に送信する(S510)。その際に、スキャナ10は、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0005」というコマンドを使用する。「ENVID=SCAN0005」は、エンベロープ識別子が「SCAN0005」であることを表している。
【0167】
メールサーバSv11は、メールの送信元であるスキャナ10に接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10に返す(S511)。
【0168】
次に、本動作例5では、スキャナ10は、ユーザsuzukiの端末22aにメールを送信するために、メールの送信宛先としてユーザsuzukiの端末22aを指定する情報をメールサーバSv11に送信する(S512)。その際に、スキャナ10は、例えば、S118で使用したコマンドに類似する、「RCPT TO:<suzuki@company2.com> NOTIFY=FAILURE ORCPT=rfc822;suzuki@company2.com」というコマンドを使用する。
【0169】
メールサーバSv11は、ユーザsuzukiの端末22aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10に返す(S513)。
【0170】
S513以降の、スキャナ10がメールサーバSv11との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0171】
なお、本動作例5では、送信メールのサイズが「11MB」となっている。これに対して、図1に示すように、スキャナ10がメールの送信に使用するメールサーバSv11のメール送信制限容量は「15MB」となっており、ユーザsuzukiの端末22aがメールの受信に使用するメールサーバSv22のメール送信制限容量が「10MB」となっている。
【0172】
したがって、本動作例5では、送信メールのサイズ(11MB)が、メールサーバSv11のメール送信制限容量(15MB)未満となっているものの、メールサーバSv22のメール送信制限容量(10MB)以上となっている。そのため、本動作例5では、メールサーバSv22が、スキャナ10から送信された「11MB」のメールを受信することができない。したがって、メールサーバSv22が、メールサーバSv11を介して、DSNによる通知メールとしてのエラーメールをスキャナ10(scan@example.com)宛てに送信する。このときのスキャナ10とメールサーバSv11との間のシーケンスは、図8に示す通りである。
【0173】
図16は、実施形態1で用いるエラーメールの一例を示す図である。図16は、メールサーバSv22からスキャナ10に送信されたエラーメール205の一例を示している。
【0174】
図16に示す例において、3行目の「Subject」で始まる行は、エラーメール205が「suzuki@company2.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
11行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0005」の送信メールの配送に失敗したことを示している。
【0175】
17行目の「Reporting−MTA」で始まる行は、エラーメール205がメールサーバSv22(mail.company2.com)から送信されたメールであることを示している。
18行目の「Original−Envelope−ID」で始まる行は、エラーメール205がエンベロープ識別子「SCAN0005」の送信メールに対する配送通知であることを示している。
【0176】
23行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。
【0177】
24行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
25行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
27行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0178】
スキャナ10は、例えば、図16に示すエラーメール205を受信すると、受信メール解釈部143(図2参照)が、エラーメール205の18行目の「Original−Envelope−ID」で始まる行から、配送エラー送信メール(ここでは、エラーメール205に対応する送信メール)の情報として、エンベロープ識別子「SCAN0005」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0005」の送信メールの送信履歴情報を読み出す。
【0179】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0005」の送信メールのデータサイズの値が「11MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル301(図14参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル301の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0005」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル301に登録された送信制限データサイズの値)を、エンベロープ識別子「SCAN0005」の送信メールのデータサイズの値である「11MB」に更新する。
【0180】
なお、このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル301に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、配送エラー送信メール(ここでは、エンベロープ識別子「SCAN0005」の送信メール)のデータサイズの値「11MB」を、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0005」の送信メールの送信に使用されたメールアドレス)に対応付けて、送信制限サイズテーブル301に新規に登録する。
【0181】
また、同時に、受信メール解釈部143は、更新送信制限データサイズとして、送信制限サイズテーブル301(図14参照)に登録された送信制限サイズ情報の中で、エンベロープ識別子「SCAN0005」の送信メールの送信宛先のメールアドレス(ここでは、メールアドレス「suzuki@company2.com」)と同じドメインのメールアドレス(ここでは、メールアドレス「tanaka@company2.com」)に対応付けられた送信制限データサイズの値も「11MB」に更新する。
【0182】
その結果、更新後の送信制限サイズテーブル301は、例えば、図14に示す状態から、図17に示す状態に変化する。図17は、実施形態1で用いる送信制限サイズテーブルの一例を示す図である。図17に示す例では、送信制限サイズテーブル301には、配送エラーの送信宛先のメールアドレス「suzuki@company2.com」と「tanaka@company2.com」とに対して、配送エラー送信メールのデータサイズの値「11MB」が対応付けられて登録されている。
【0183】
以上の通り、本実施形態1に係るスキャナ10によれば、メールの送信宛先の能力に応じて、メールの送信を制御することができる。これにより、送信メールに対して適切なサイズ制限を適用することができ、また、送信宛先がメールを適正に受信する能力があるにもかかわらず、メールの送信が中止されるのを回避することができる。その結果、装置の利便性を向上させることができる。
【0184】
[実施形態2]
以下、図18を参照して、本実施形態2に係る画像送信装置としてのスキャナ10Bの構成を説明する。図18は、実施形態2に係る画像送信装置の接続構成を示す図である。
【0185】
本実施形態2に係るスキャナ10Bは、実施形態1に係るスキャナ10と同様に、原稿の画像を読み取って画像データを生成し、その画像データをメールに添付して任意の送信宛先に向けて送信する装置である。
【0186】
図18に示すように、本実施形態2に係るスキャナ10B(メールアドレス:scan@example.com)は、実施形態1に係るスキャナ10(メールアドレス:scan@example.com)(図1参照)と比較すると、メールサーバSv11(ホスト名:mail.isp1.com)に加え、メールサーバSv12(ホスト名:mail.isp2.com)にも接続されている点で相違している。
【0187】
メールサーバSv12は、例えば、LAN6b等のネットワークによって、スキャナ10Bと通信可能に接続されたサーバである。メールサーバSv12は、メールサーバSv11と同様に、特許請求の範囲に記載された「送信側のメールサーバ」に相当する。メールサーバSv12は、メールサーバSv11と同様に、インターネット5を介して、ドメイン「company1.com」のグループ21及びドメイン「company2.com」のグループ22と通信可能に接続されている。
図18に示す例では、メールサーバSv12は、メールサーバSv11と同様に、インターネット5を介して、ドメイン「company1.com」及びドメイン「company2.com」の2つのグループに接続されている。
【0188】
メールサーバSv11,Sv12,Sv21,Sv22には、それぞれ、メール送信制限容量が決められている。ここでは、メール送信制限容量は、メールサーバSv11が「15MB」、メールサーバSv12が「30MB」、メールサーバSv21が「20MB」、メールサーバSv22が「10MB」であるものとして説明する。
【0189】
本実施形態2に係るスキャナ10Bの内部構成は、実施形態1に係るスキャナ10の内部構成(図2参照)と同様である。
ただし、本実施形態2に係るスキャナ10Bは、実施形態1に係るスキャナ10と比較すると、「送信制限サイズ情報」として、メールのデータサイズの値を、送信宛先(具体的には、送信宛先のメールアドレス)のメールアドレス及びメールサーバ(具体的には、メールの配送に使用されるメールサーバのホスト名)のいずれか一方と対応付けて、「送信制限サイズテーブル401(図21参照)」に登録する点で相違している。
【0190】
以下、図19及び図20を参照して、スキャナ10Bの動作につき説明する。図19及び図20は、それぞれ、実施形態2に係る画像送信装置の動作を示すフローチャートである。ここでは、スキャナ10Bが様々なサイズのメールをユーザyamadaの端末21a、ユーザsuzukiの端末22a、及び、ユーザtanakaの端末22bのいずれか1乃至複数に送信する場合を想定して、スキャナ10Bの動作を説明する。
【0191】
図19は、メール送信時のスキャナ10Bの動作を示している。ここでは、スキャナ10Bが、原稿の画像を読み取って画像データを生成し、その画像データをメールに添付して、操作者によって指定された送信宛先に向けて送信するものとして説明する。
【0192】
本実施形態2に係るスキャナ10Bの動作は、実施形態1に係るスキャナ10の動作(図3参照)と比較すると、(1)S14の処理(「送信サイズ決定」処理)とS16の処理(「宛先の決定」処理)との間で、S15の判定を行う点、及び、(2)S20で送信不能な宛先があるか否かを判定する代わりに、S20aで送信不能な宛先又はサーバがあるか否かを判定する点で相違している。
【0193】
この動作では、操作者が、まず、原稿を画像読取部110にセットし、次に、操作パネル120を操作して、メールの送信に必要な情報(例えば、送信宛先のメールアドレス等)をスキャナ10Bに入力する。このとき、入力情報は、入力情報記憶部152に記憶される。続いて、操作者は、操作パネル120を操作して、画像の読み取りをスキャナ10Bに指示する。これに応答して、スキャナ10Bが動作を開始する。
【0194】
まず、スキャナ10Bは、画像読取部110が、セットされた原稿の画像を光学的に読み取る(S12)。このとき、画像読取部110は、読み取られた原稿の画像データを生成し、生成された画像データを画像メモリ153に出力する。これにより、生成された画像データが画像メモリ153に一時的に記憶される。画像メモリ153に記憶された画像データは、S24でメールが送信された後に、制御部140(例えば、メール送信制御部142)によって消去される。
【0195】
次に、スキャナ10Bは、メール生成部141が、画像メモリ102に一時的に記憶された画像データを読み出し、読み出された画像データに基づいて、送信する画像データのデータサイズ(送信サイズ)の値を決定する(S14)。
【0196】
S14の後に、スキャナ10Bのメール送信制御部142は、S14で決定された送信サイズの値が送信側のメールサーバ(ここでは、メールサーバSv11又はメールサーバSv12)に割り当てられたメール送信制限容量(以下、「送信側のサーバの送信制限サイズ」と称する)の値未満であるか否かを判定する(S15)。
【0197】
S15の判定は、メール送信制御部142が、制限サイズ記憶部155から送信制限サイズテーブル401(図21参照)を読み出し、送信制限サイズテーブル401に基づいて、送信側のサーバの送信制限サイズを特定し、S14で決定された送信サイズの値と送信側のサーバの送信制限サイズの値とを比較することによって、行われる。
【0198】
S15の判定で、S14で決定された送信サイズの値が送信側のサーバの送信制限サイズの値未満である場合(“Yes”の場合)に、処理は、S16に進む。
一方、S15の判定で、S14で決定された送信サイズの値が送信側のサーバの送信制限サイズの値以上である場合(“No”の場合)に、処理は、S22に進む。
【0199】
S15の判定で、S14で決定された送信サイズの値が送信側のサーバの送信制限サイズの値未満である場合(“Yes”の場合)に、メール生成部141が、入力情報記憶部152から、操作者によって入力された、送信宛先のメールアドレスを含む入力情報を読み出し、読み出された入力情報に基づいて、メール(本文データ)を生成し(S16)、生成されたメールを生成メール記憶部154に出力する。これにより、生成されたメール(本文データ)が生成メール記憶部154に一時的に記憶される。
【0200】
この後、スキャナ10Bは、メール送信制御部142(又は、メール生成部141)が、入力情報記憶部152から、操作者によって入力された、送信宛先のメールアドレスを含む入力情報を読み出し、読み出された入力情報に基づいて、メールの送信宛先の決定処理を行う(S18)。S18の処理(「宛先の決定」処理)の詳細は、図4に示す通りである。
【0201】
なお、スキャナ10Bは、S40の処理(「送信不能な宛先に追加」処理)で、送信不能な宛先のメールアドレス情報だけでなく、送信不能な送信側のサーバがあれば、そのサーバ情報(具体的には、ホスト名)も、「送信不能アドレス情報」として、送信不能宛先記憶部157に記憶する。
【0202】
S18の後、メール送信制御部142は、送信不能な宛先又は送信側のサーバがあるか否かを判定する(S20a)。S20aの判定は、メール送信制御部142が、図4に示すS40の処理(「送信不能な宛先に追加」処理)で、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」があるか否かを判定することによって、行われる。
【0203】
S20aの判定で、送信不能な宛先又は送信側のサーバがあると判定された場合(“Yes”の場合)に、すなわち、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」がある場合に、メール送信制御部142は、送信不能な宛先のメールアドレスや送信不能な送信側のサーバのホスト名を操作パネル120に表示して、送信不能な宛先のメールアドレスやサーバのホスト名を操作者に通知し(S22b)、一連のルーチンの処理を終了する。
【0204】
一方、S20aの判定で、送信不能な宛先又は送信側のサーバがないと判定された場合(“No”の場合)に、すなわち、送信不能宛先記憶部157に記憶された「送信不能アドレス情報」がない場合に、メール送信制御部142は、生成メール記憶部154からメール(本文データ)を読み出し、画像メモリ153から画像データを読み出し、さらに、送信可能宛先記憶部156から送信可能アドレス情報を読み出す。
【0205】
そして、メール送信制御部142は、エンベロープ識別子をメールに割り当て、そのエンベロープ識別子と送信可能アドレス情報とに基づいてメールヘッダを生成して、生成されたメールヘッダをメールの本文データに添付するとともに、画像データをRFC(Request For Comments)に規定されたMIME(Multipurpose Internet Mail Extension)形式に変換して、変換された画像データを添付ファイルとしてメールの本文データに添付する。これによって、メールが完成する。
【0206】
メール送信制御部142は、完成されたメールを通信部130に出力する。通信部130は、メール送信制御部142からメールが入力されると、メールサーバSv11を介して、メールを、操作者によって指定された送信宛先に向けて送信する(S24)。
【0207】
S24の処理(「メール送信」処理)の後、送信メールが適正に送信宛先に配送されない場合に、送信メールの配送エラーの発生を通知するエラーメールが、メールサーバSv11,Sv12,Sv21,Sv22のいずれかからスキャナ10Bに向けて送信される。
【0208】
図20は、エラーメール受信時のスキャナ10Bの動作を示している。ここでは、スキャナ10Bが、メールサーバSv11,Sv12,Sv21,Sv22のいずれかからエラーメールを受信して、エラーメールの内容を解析することによって得られる情報に基づいて、送信制限データサイズの値を更新するものとして説明する。
【0209】
本実施形態2に係るスキャナ10Bの動作は、実施形態1に係るスキャナ10の動作(図5参照)と比較すると、(1)S52の処理(「エラーメールを受信」処理)とS54の判定処理(「識別子が含まれているか」の判定処理)との間で、S53の判定処理を行う点、及び、(2)S53の判定処理で、“No”の場合に、S54の判定処理を行い、S53の判定処理で、“Yes”の場合に、S64〜S68の処理を行う点で相違している。
【0210】
図20に示すように、スキャナ10Bは、まず、通信部130が、メールサーバSv11,Sv12,Sv21,Sv22のいずれかから送信されたエラーメールを受信する(S52)。
【0211】
スキャナ10Bは、エラーメールを受信すると、受信メール解釈部143が、エラーメールを送信したメールサーバが送信側のメールサーバ(ここでは、メールサーバSv11又はメールサーバSv12)であるか否かを判定する(S53)。
【0212】
S53の判定で、エラーメールを送信したメールサーバが送信側のメールサーバでない場合(“No”の場合)に、受信メール解釈部143は、送信メールの配送エラーの原因が、送信側のメールサーバのメール送信制限容量に起因するものではなく、受信側のメールサーバ(ここでは、メールサーバSv21又はメールサーバSv22)のメール送信制限容量に起因するものであると解釈する。
【0213】
この場合に、受信メール解釈部143が、S24のメールの送信時に送信メールに割り当てられたエンベロープ識別子がエラーメールに含まれているか否かを判別する(S54)。
【0214】
S54の判定で、エンベロープ識別子がエラーメールに含まれている場合(“Yes”の場合)に、受信メール解釈部143は、送信履歴記憶部158からそのエンベロープ識別子に対応する送信メールの送信履歴情報を読み出し、読み出された送信メールの送信履歴情報に基づいて、配送エラー送信メールのデータサイズを特定する(S56)。
【0215】
次に、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル401(図21参照)を読み出し、更新送信制限データサイズ(更新登録する送信制限データサイズ)として、配送エラーの送信宛先の送信制限データサイズ(すなわち、配送エラーの送信宛先のメールアドレスに対応付けられた送信制限データサイズ)の値を、S56で特定された、配送エラー送信メールのデータサイズの値に更新する(S58)。これにより、スキャナ10Bは、一連のルーチンの処理を終了する。
【0216】
なお、このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル401に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、S56で特定された、配送エラー送信メールのデータサイズの値を、配送エラーの送信宛先のメールアドレスに対応付けて、送信制限サイズテーブル401に新規に登録する。
【0217】
一方、S54の判定で、エンベロープ識別子がエラーメールに含まれていない場合(“No”の場合)に、スキャナ10Bは、一連のルーチンの処理を終了する。
【0218】
また、S53の判定で、エラーメールを送信したメールサーバが送信側のメールサーバである場合(“Yes”の場合)に、受信メール解釈部143は、送信メールの配送エラーの原因が、受信側のメールサーバのメール送信制限容量に起因するものではなく、送信側のメールサーバ(ここでは、メールサーバSv11又はメールサーバSv12)のメール送信制限容量に起因するものであると解釈する。
【0219】
この場合に、受信メール解釈部143が、S24のメールの送信時に送信メールに割り当てられたエンベロープ識別子がエラーメールに含まれているか否かを判別する(S64)。
【0220】
S64の判定で、エンベロープ識別子がエラーメールに含まれている場合(“Yes”の場合)に、受信メール解釈部143は、送信履歴記憶部158からそのエンベロープ識別子に対応する送信メールの送信履歴情報を読み出し、読み出された送信メールの送信履歴情報に基づいて、配送エラー送信メールのデータサイズを特定する(S66)。
【0221】
次に、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル401(図21参照)を読み出し、更新送信制限データサイズ(更新登録する送信制限データサイズ)として、配送エラーの送信側のメールサーバの送信制限データサイズ(すなわち、配送エラーの送信側のメールサーバのホスト名(ここでは、メールサーバSv11のホスト名「mail.isp1.com」又はメールサーバSv12のホスト名「mail.isp2.com」)に対応付けられた送信制限データサイズ)の値を、S66で特定された、配送エラー送信メールのデータサイズの値に更新する(S68)。これにより、スキャナ10Bは、一連のルーチンの処理を終了する。
【0222】
なお、このとき、配送エラーの送信宛先の送信制限データサイズが送信制限サイズテーブル401に登録されていなければ、受信メール解釈部143は、更新送信制限データサイズとして、S66で特定された、配送エラー送信メールのデータサイズの値を、エラーメールを送信した送信側のサーバに対応付けて、送信制限サイズテーブル401に新規に登録する。
【0223】
一方、S64の判定で、エンベロープ識別子がエラーメールに含まれていない場合(“No”の場合)に、スキャナ10Bは、一連のルーチンの処理を終了する。
【0224】
以下、いくつかの具体的な動作例をあげて、スキャナ10Bの詳細な動作を説明する。なお、スキャナ10Bのコマンドを送受信する動作は、メール送信制御部142(図2参照)によって行われ、また、スキャナ10Bの外部から受信されたメールを解釈する動作は、受信メール解釈部143(図2参照)によって行われるものとして説明する。また、ここでは、「送信メールのサイズ」が「画像データのサイズ」と実質的に等価であるものとして説明する。また、ここでは、単に「メールサーバ」と称する場合は、メールの配送に関わるメールサーバ全般を意味しているものとする。
【0225】
ここで、スキャナ10Bの詳細な動作を説明するにあたり、制限サイズ記憶部155に記憶されている送信制限サイズテーブル401(図21参照)について説明する。図21は、実施形態2で用いる送信制限サイズテーブルの一例を示す図である。
【0226】
図21に示す例では、「12MB」の送信制限データサイズと更新日時とが、送信制限サイズ情報として、メールアドレス「tanaka@company2.com」に対応付けられて送信制限サイズテーブル401に登録されている。また、「12MB」の送信制限データサイズと更新日時とが、送信制限サイズ情報として、メールアドレス「suzuki@company2.com」に対応付けられて送信制限サイズテーブル401に登録されている。なお、図21に示す例では、メールサーバSv11(mail.isp1.com)とメールサーバSv12(mail.isp2.com)に対応する送信制限データサイズが登録されていない。
【0227】
(動作例6:スキャナ10BがメールサーバSv11を使用して「16MB」のメールをユーザyamadaの端末21aに送信する場合の動作)
以下、図18及び図22を参照して、スキャナ10BがメールサーバSv11を使用して「16MB」のメールをユーザyamadaの端末21aに送信する場合の、スキャナ10B及びメールサーバSv11の動作を説明する。図22は、実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0228】
スキャナ10BがメールサーバSv11との間でTCPコネクションを確立してから、スキャナ10BがメールサーバSv11との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0229】
次に、スキャナ10Bは、メールサーバSv11との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv11に送信する(S610)。その際に、スキャナ10Bは、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0011」というコマンドを使用する。「ENVID=SCAN0011」は、エンベロープ識別子が「SCAN0011」であることを表している。
【0230】
メールサーバSv11は、メールの送信元であるスキャナ10Bに接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S611)。
【0231】
次に、本動作例6では、スキャナ10Bは、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv11に送信する(S612)。その際に、スキャナ10Bは、例えば、S118と同様に、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822;yamada@company1.com」というコマンドを使用する。
【0232】
メールサーバSv11は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S613)。
【0233】
S613以降の、スキャナ10BがメールサーバSv11との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0234】
なお、本動作例6では、送信メールのサイズが「16MB」となっている。これに対して、図18に示すように、スキャナ10Bがメールの送信に使用するメールサーバSv11のメール送信制限容量は「15MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっている。
【0235】
したがって、本動作例6では、送信メールのサイズ(16MB)が、メールサーバSv21のメール送信制限容量(20MB)未満となっているものの、メールサーバSv11のメール送信制限容量(15MB)以上となっている。そのため、本動作例6では、メールサーバSv11が、スキャナ10Bから送信された「16MB」のメールを受信することができない。したがって、メールサーバSv11が、DSNによる通知メールとしてのエラーメールをスキャナ10B(scan@example.com)宛てに送信する。このときのスキャナ10BとメールサーバSv11との間のシーケンスは、図8に示す通りである。
【0236】
図23は、実施形態2で用いるエラーメールの一例を示す図である。図23は、メールサーバSv11からスキャナ10Bに送信されたエラーメール206の一例を示している。
【0237】
図23に示す例において、1行目の「Date」で始まる行は、エラーメール206が送信された日時を示している。
4行目の「Subject」で始まる行は、エラーメール206が「yamada@company1.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
12行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0011」の送信メールの配送に失敗したことを示している。
【0238】
18行目の「Reporting−MTA」で始まる行は、エラーメール206がメールサーバSv11(mail.isp1.com)から送信されたメールであることを示している。
19行目の「Original−Envelope−ID」で始まる行は、エラーメール206がエンベロープ識別子「SCAN0011」の送信メールに対する配送通知であることを示している。
【0239】
24行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。
【0240】
25行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
26行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
28行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0241】
スキャナ10Bは、例えば、図23に示すエラーメール206を受信すると、受信メール解釈部143(図2参照)が、エラーメール206の19行目の「Original−Envelope−ID」で始まる行から、エラーメール206に対応する送信メールの情報として、エンベロープ識別子「SCAN0011」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0011」の送信メールの送信履歴情報を読み出す。
【0242】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0011」の送信メールのデータサイズの値が「16MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル401(図21参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル401の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0011」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル401に登録された送信制限データサイズの値)を「16MB」に更新する。
【0243】
ただし、本実施形態2では、実施形態1とは異なり、エラーメール206の送信元が送信側のメールサーバ(ここでは、スキャナ10Bがメールの送信に使用しているメールサーバSv11(mail.isp1.com))である場合に、受信メール解釈部143は、更新送信制限データサイズとして、送信側のメールサーバ(ここでは、メールサーバSv11(mail.isp1.com))に対応する送信制限データサイズの値を「16MB」に更新する。
【0244】
その結果、更新後の送信制限サイズテーブル401は、図21に示す状態から、図24に示す状態に変化する。図24は、実施形態2で用いる送信制限サイズテーブルの一例を示す図である。図24に示す例では、送信制限サイズテーブル401には、エラーメール206を送信した送信側のメールサーバのホスト名(ここでは、メールサーバSv11のホスト名「mail.isp1.com」)と、配送エラー送信メールのデータサイズの値「16MB」とが対応付けられて登録されている。
【0245】
なお、送信側のメールサーバのホスト名に対応付けられて送信制限サイズテーブル401に登録された送信制限データサイズの値は、送信メールの配送が失敗して、エラーメール206がスキャナ10Bに送信される度に、エラーメール206を送信した送信側のメールサーバのメール送信制限容量に近似していく。例えば、本動作例6では、送信制限データサイズの値は、エラーメール206がスキャナ10Bに送信される度に、メールサーバSv11のメール送信制限容量である「15MB」に近似していく。
【0246】
(動作例7:スキャナ10BがメールサーバSv12を使用して「16MB」のメールをユーザyamadaの端末21aに送信する場合の動作)
スキャナ10B(図18参照)がメールの送信に使用するメールサーバをメールサーバSv11からメールサーバSv12に変更すると、メールサーバSv12のメール送信制限容量が「30MB」であるため、送信可能なメールのデータサイズが動作例6の場合よりも増大する。その結果、スキャナ10Bは、「16MB」のメールをユーザyamadaの端末21aに送信することができるようになる。
【0247】
(動作例8:スキャナ10BがメールサーバSv12を使用して「40MB」のメールをユーザyamadaの端末21aに送信する場合の動作)
以下、図18及び図25を参照して、スキャナ10BがメールサーバSv12を使用して「40MB」のメールをユーザyamadaの端末21aに送信する場合の、スキャナ10B及びメールサーバSv12の動作を説明する。図25は、実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0248】
スキャナ10BがメールサーバSv12との間でTCPコネクションを確立してから、スキャナ10BがメールサーバSv12との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0249】
次に、スキャナ10Bは、メールサーバSv12との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv12に送信する(S710)。その際に、スキャナ10Bは、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0015」というコマンドを使用する。「ENVID=SCAN0015」は、エンベロープ識別子が「SCAN0015」であることを表している。
【0250】
メールサーバSv12は、メールの送信元であるスキャナ10Bに接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S711)。
【0251】
次に、本動作例8では、スキャナ10Bは、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv12に送信する(S712)。その際に、スキャナ10Bは、例えば、S118と同様に、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822;yamada@company1.com」というコマンドを使用する。
【0252】
メールサーバSv12は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S713)。
【0253】
S713以降の、スキャナ10BがメールサーバSv12との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0254】
なお、本動作例8では、送信メールのサイズが「40MB」となっている。これに対して、図18に示すように、スキャナ10Bがメールの送信に使用するメールサーバSv12のメール送信制限容量は「30MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっている。
【0255】
したがって、本動作例8では、送信メールのサイズ(40MB)が、メールサーバSv21のメール送信制限容量(20MB)以上となっており、また、メールサーバSv12のメール送信制限容量(30MB)以上となっている。そのため、本動作例8では、メールサーバSv12が、スキャナ10Bから送信された「40MB」のメールを受信することができない。したがって、メールサーバSv12が、DSNによる通知メールとしてのエラーメールをスキャナ10B(scan@example.com)宛てに送信する。このときのスキャナ10BとメールサーバSv12との間のシーケンスは、図8に示す通りである。
【0256】
図26は、実施形態2で用いるエラーメールの一例を示す図である。図26は、メールサーバSv12からスキャナ10Bに送信されたエラーメール208の一例を示している。
【0257】
図26に示す例において、1行目の「Date」で始まる行は、エラーメール208が送信された日時を示している。
4行目の「Subject」で始まる行は、エラーメール208が「yamada@company1.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
12行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0015」の送信メールの配送に失敗したことを示している。
【0258】
18行目の「Reporting−MTA」で始まる行は、エラーメール208がメールサーバSv12(mail.isp2.com)から送信されたメールであることを示している。
19行目の「Original−Envelope−ID」で始まる行は、エラーメール208がエンベロープ識別子「SCAN0015」の送信メールに対する配送通知であることを示している。
【0259】
24行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。
【0260】
25行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
26行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
28行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0261】
スキャナ10Bは、例えば、図26に示すエラーメール208を受信すると、受信メール解釈部143(図2参照)が、エラーメール208の19行目の「Original−Envelope−ID」で始まる行から、配送エラー送信メール(ここでは、エラーメール208に対応する送信メール)の情報として、エンベロープ識別子「SCAN0015」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0015」の送信メールの送信履歴情報を読み出す。
【0262】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0015」の送信メールのデータサイズの値が「40MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル401(図24参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル401の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0015」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル401に登録された送信制限データサイズの値)を「40MB」に更新する。
【0263】
ただし、本実施形態2では、実施形態1とは異なり、エラーメール208の送信元が送信側のメールサーバ(ここでは、スキャナ10Bがメールの送信に使用しているメールサーバSv12(mail.isp2.com))である場合に、受信メール解釈部143は、更新送信制限データサイズとして、送信側のメールサーバ(ここでは、メールサーバSv12(mail.isp2.com))に対応する送信制限データサイズの値を「40MB」に更新する。
【0264】
その結果、更新後の送信制限サイズテーブル401は、図24に示す状態から、図27に示す状態に変化する。図27は、実施形態2で用いる送信制限サイズテーブルの一例を示す図である。図27に示す例では、送信制限サイズテーブル401には、エラーメール208を送信した送信側のメールサーバのホスト名(ここでは、メールサーバSv12のホスト名「mail.isp2.com」)と、配送エラー送信メールのデータサイズの値「40MB」とが対応付けられて登録されている。
【0265】
なお、前記した通り、送信側のメールサーバのホスト名に対応付けられて送信制限サイズテーブル401に登録された送信制限データサイズの値は、送信メールの配送が失敗して、エラーメール206がスキャナ10Bに送信される度に、エラーメール206を送信した送信側のメールサーバのメール送信制限容量に近似していく。そのため、例えば、本動作例8では、送信制限データサイズの値は、エラーメール208がスキャナ10Bに送信される度に、メールサーバSv12のメール送信制限容量である「30MB」に近似していく。
【0266】
(動作例9:スキャナ10BがメールサーバSv12を使用して「25MB」のメールをユーザyamadaの端末21aに送信する場合の動作)
以下、図18及び図28を参照して、スキャナ10BがメールサーバSv12を使用して「25MB」のメールをユーザyamadaの端末21aに送信する場合の、スキャナ10B及びメールサーバSv12の動作を説明する。図28は、実施形態2に係る画像送信装置とメールサーバとの間のシーケンス図である。
【0267】
スキャナ10BがメールサーバSv12との間でTCPコネクションを確立してから、スキャナ10BがメールサーバSv12との接続を確認するまでの処理は、動作例1のS110〜S115(図6参照)と同様である。
【0268】
次に、スキャナ10Bは、メールサーバSv12との接続を確認すると、メールの送信元としての自身のメールアドレスをメールサーバSv12に送信する(S810)。その際に、スキャナ10Bは、例えば、S116で使用したコマンドに類似する、「MAIL FROM:<scan@example.com> ENVID=SCAN0016」というコマンドを使用する。「ENVID=SCAN0016」は、エンベロープ識別子が「SCAN0016」であることを表している。
【0269】
メールサーバSv12は、メールの送信元であるスキャナ10Bに接続を許可する場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S811)。
【0270】
次に、本動作例9では、スキャナ10Bは、ユーザyamadaの端末21aにメールを送信するために、メールの送信宛先としてユーザyamadaの端末21aを指定する情報をメールサーバSv12に送信する(S812)。その際に、スキャナ10Bは、例えば、S118と同様に、「RCPT TO:<yamada@company1.com> NOTIFY=FAILURE ORCPT=rfc822;yamada@company1.com」というコマンドを使用する。
【0271】
メールサーバSv12は、ユーザyamadaの端末21aをメールの送信宛先として受け付ける場合に、例えば、「250 OK」という応答をスキャナ10Bに返す(S813)。
【0272】
S813以降の、スキャナ10BがメールサーバSv12との間のTCPコネクションを切断するまでの処理は、動作例1のS122〜S130(図6参照)と同様である。
【0273】
なお、本動作例9では、送信メールのサイズが「25MB」となっている。これに対して、図28に示すように、スキャナ10Bがメールの送信に使用するメールサーバSv12のメール送信制限容量は「30MB」となっており、ユーザyamadaの端末21aがメールの受信に使用するメールサーバSv21のメール送信制限容量が「20MB」となっている。
【0274】
したがって、本動作例8では、送信メールのサイズ(25MB)が、メールサーバSv12のメール送信制限容量(30MB)未満となっているものの、メールサーバSv21のメール送信制限容量(20MB)以上となっている。そのため、本動作例9では、メールサーバSv21が、スキャナ10Bから送信された「25MB」のメールを受信することができない。したがって、メールサーバSv21が、メールサーバSv12を介して、DSNによる通知メールとしてのエラーメールをスキャナ10B(scan@example.com)宛てに送信する。このときのスキャナ10BとメールサーバSv12との間のシーケンスは、図8に示す通りである。
【0275】
図29は、実施形態2で用いるエラーメールの一例を示す図である。図29は、メールサーバSv21からスキャナ10Bに送信されたエラーメール209の一例を示している。
【0276】
図29に示す例において、1行目の「Date」で始まる行は、エラーメール209が送信された日時を示している。
4行目の「Subject」で始まる行は、エラーメール209が「yamada@company1.com」宛ての送信メールの配送に失敗したことを通知する配送通知であることを示している。
12行目の「Your message」で始まる行は、エンベロープ識別子「SCAN0016」の送信メールの配送に失敗したことを示している。
【0277】
18行目の「Reporting−MTA」で始まる行は、エラーメール209がメールサーバSv21(mail.company1.com)から送信されたメールであることを示している。
19行目の「Original−Envelope−ID」で始まる行は、エラーメール209がエンベロープ識別子「SCAN0016」の送信メールに対する配送通知であることを示している。
【0278】
24行目の「Diagnostic−Code」で始まる行は、エラーの種別がSMTPステータスコードの「521」であることを示しており、また、メールのサイズが大きすぎる(the message is too large)ことも示している。
【0279】
25行目の「Action」で始まる行は、送信メールの配送に失敗したことを示している。
26行目の「Status」で始まる行は、SMTPステータスコードを別の表現で示している。
28行目以降は、元のメールのヘッダ等の引用部分に当たるが、図中では省略されている。
【0280】
スキャナ10Bは、例えば、図29に示したエラーメール209を受信すると、受信メール解釈部143(図2参照)が、エラーメール209の19行目の「Original−Envelope−ID」で始まる行から、配送エラー送信メール(ここでは、エラーメール209に対応する送信メール)の情報として、エンベロープ識別子「SCAN0016」を取り出す。そして、受信メール解釈部143は、送信履歴記憶部158からエンベロープ識別子「SCAN0016」の送信メールの送信履歴情報を読み出す。
【0281】
次に、受信メール解釈部143は、読み出された送信履歴情報から、エンベロープ識別子「SCAN0016」の送信メールのデータサイズの値が「25MB」であることを特定する。そして、受信メール解釈部143は、制限サイズ記憶部155から送信制限サイズテーブル401(図27参照)を読み出し、更新送信制限データサイズとして、送信制限サイズテーブル401の中の前記した「配送エラーの送信宛先の送信制限データサイズ」の値(すなわち、配送エラーの送信宛先のメールアドレス(ここでは、エンベロープ識別子「SCAN0016」の送信メールの送信に使用されたメールアドレス)に対応付けられて送信制限サイズテーブル401に登録された送信制限データサイズの値)を「25MB」に更新する。
【0282】
例えば、ここでは、受信メール解釈部143は、ユーザyamadaの端末21aのメールアドレス「yamada@company1.com」に対応する送信制限データサイズの値を「25MB」に更新する。
【0283】
その結果、更新後の送信制限サイズテーブル401は、図27に示す状態から、図30に示す状態に変化する。図30は、実施形態2で用いる送信制限サイズテーブルの一例を示す図である。図30に示す例では、送信制限サイズテーブル401には、配送エラーの送信宛先のメールアドレス「yamada@company1.com」)と、配送エラー送信メールのデータサイズの値「25MB」とが対応付けられて登録されている。
【0284】
なお、本実施形態2に係る送信制限サイズテーブル401(図21、図24、図27、及び、図30参照)には、更新日時の情報が含まれている。スキャナ10Bは、この送信制限サイズテーブル401を参照して、更新日時から所定の時間が経過している送信制限サイズ情報に対して、送信制限データサイズが変更されていないかを確認するために、送信制限データサイズの値にかかわらず、例えば、送信制限データサイズと同じ値のメールを送信して応答を確認する、ことも可能である。
【0285】
以上の通り、本実施形態2に係るスキャナ10Bによれば、実施形態1の効果に加えて、複数のメールサーバを接続する形態であっても、メールの送信宛先に応じた適切なサイズ制限を適用することができ、装置の利便性を向上させることができる。
【0286】
本発明は、前記した実施形態に限定されることなく、本発明の要旨を逸脱しない範囲で種々の変更や変形を行うことができる。
【0287】
例えば、実施形態1及び実施形態2では、画像送信装置がスキャナであるものとして説明している。しかしながら、画像送信装置は、複写機、MFP(複合機)、ファクシミリ装置等として構成することができる。なお、「MFP」とは、Multi Function Printerの略称で、プリンタにファクシミリ機能やスキャナ機能、コピー機能等を付加した装置である。
【0288】
また、例えば、画像送信装置は、送信メールの配送が成功した場合に、送信履歴記憶部158から配送に成功した送信メールの送信履歴情報を読み出し、配送に成功した送信メールのデータサイズの値をメールアドレスや送信側のメールサーバのホスト名、受信側のメールサーバのホスト名等に対応付けて、送信可能なデータサイズ情報として、記憶部150に記憶しておき、次回以降のメールの送信時に、送信可能なデータサイズ情報に基づいて、送信可能なデータサイズ分のメールを送信するようにしてもよい。
【0289】
また、例えば、「未満」や「以上」等の語句は、運用に応じて、それぞれ、「以下」や「より大きい」等の語句に変更することができる。
【0290】
また、例えば、メールサーバのメール送信制限容量は、会社とその会社に属する部署とで、変わることがある。
また、例えば、従業員のメールアドレスは、会社の代表のメールアドレスに任意の情報を付加した構成にすることができる。
【符号の説明】
【0291】
Sv11,Sv12 (送信側の)メールサーバ
Sv21,Sv22 (受信側の)メールサーバ
5 インターネット
6,7a,8a,8b LAN
10,10B 画像送信装置(スキャナ)
21,22 グループ
21a ユーザyamadaの端末
22a ユーザsuzukiの端末
22a ユーザtanakaの端末
110 画像読取部(画像データ生成部)
120 操作パネル(入力部)
130 通信部
140 制御部(CPU)
141 メール生成部
142 メール送信制御部
143 受信メール解釈部
150 記憶部(ROM,RAM等)
151 プログラム記憶部
152 入力情報記憶部
153 画像メモリ
154 生成メール記憶部
155 制限サイズ記憶部
156 送信可能宛先記憶部
157 送信不能宛先記憶部
158 送信履歴記憶部

【特許請求の範囲】
【請求項1】
画像データを添付した電子メールを任意の送信宛先に向けて送信する画像送信装置において、
前記画像データを添付ファイルとする前記電子メールを生成するメール生成部と、
前記電子メールを前記送信宛先に向けて送信する通信部と、
前記電子メールの送信を制限する場合のデータサイズを規定する送信制限データサイズがテーブルデータとして前記送信宛先に対応付けて記憶される制限サイズ記憶部と、
前記画像データ及び前記画像データを含む前記電子メールのいずれか一方のデータサイズの値と、前記送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、前記電子メールの送信を制御するメール送信制御部とを有する
ことを特徴とする画像送信装置。
【請求項2】
請求項1に記載の画像送信装置において、
さらに、前記電子メールの送信宛先情報を含む、前記電子メールの送信に必要な情報が入力される入力部を有し、
前記メール送信制御部は、前記制限サイズ記憶部に記憶された前記テーブルデータの中の、前記入力部から入力された前記送信宛先情報に対応する前記送信制限データサイズを用いる
ことを特徴とする画像送信装置。
【請求項3】
請求項1又は請求項2に記載の画像送信装置において、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値が前記送信宛先の送信制限データサイズの値以上である場合に、前記電子メールの送信を中止する制御を行う
ことを特徴とする画像送信装置。
【請求項4】
請求項1又は請求項2に記載の画像送信装置において、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値が前記送信宛先の送信制限データサイズの値以上である場合に、前記電子メールを分割して送信する制御を行う
ことを特徴とする画像送信装置。
【請求項5】
請求項1乃至請求項4のいずれか一項に記載の画像送信装置において、
前記通信部は、ネットワークを介して、前記電子メールを前記送信宛先に向けて配送する複数の送信側のメールサーバと接続されており、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値に応じて、複数の前記送信側のメールサーバの中から使用するメールサーバを選択する制御を行う
ことを特徴とする画像送信装置。
【請求項6】
請求項1乃至請求項5のいずれか一項に記載の画像送信装置において、
さらに、前記通信部が、前記電子メールを前記送信宛先に向けて配送する1乃至複数のメールサーバから、前記電子メールの配送エラーを通知するエラーメールを受信した場合に、当該エラーメールに基づいて、前記制限サイズ記憶部に記憶された前記テーブルデータの内容を更新する受信メール解釈部を有する
ことを特徴とする画像送信装置。
【請求項7】
請求項6に記載の画像送信装置において、
前記メール送信制御部は、前記電子メールが前記送信宛先に正常に送信されない場合に、前記エラーメールの送信を指示するコマンドを、前記1乃至複数のメールサーバの中の、当該画像送信装置と直接通信可能に接続された送信側のメールサーバに送信し、
前記受信メール解釈部は、前記エラーメールに基づいて、前記エラーメールに対応する前記電子メールの送信宛先情報及び当該エラーメールを送信した前記メールサーバを特定するサーバ特定情報のいずれか一方又は双方を取得し、前記エラーメールに対応する前記電子メールの前記データサイズを取得された情報に対応付けて前記テーブルデータに登録する
ことを特徴とする画像送信装置。
【請求項8】
請求項6又は請求項7に記載の画像送信装置において、
前記受信メール解釈部は、前記エラーメールに対応する前記電子メールを配送エラー送信メールとし、前記エラーメールの内容を解釈することによって、当該配送エラー送信メールの前記送信宛先と前記データサイズとを特定し、特定された当該配送エラー送信メールの前記データサイズを更新送信制限データサイズとし、当該更新送信制限データサイズを当該配送エラー送信メールの前記送信宛先に対応付けて前記テーブルデータに登録する
ことを特徴とする画像送信装置。
【請求項9】
請求項6乃至請求項8のいずれか一項に記載の画像送信装置において、
前記制限サイズ記憶部は、前記送信制限データサイズが前記テーブルデータとして前記送信宛先及び前記メールサーバのいずれか一方に対応付けて記憶されており、
前記受信メール解釈部は、前記エラーメールに対応する前記電子メールを配送エラー送信メールとし、前記エラーメールが、前記1乃至複数のメールサーバの中の、当該画像送信装置と直接通信可能に接続された送信側のメールサーバから送信された場合に、前記エラーメールの内容を解釈することによって、当該エラーメールを送信した前記メールサーバと当該配送エラー送信メールの前記データサイズとを特定し、特定された当該配送エラー送信メールの前記データサイズを更新送信制限データサイズとし、当該更新送信制限データサイズを当該エラーメールを送信した前記メールサーバに対応付けて前記テーブルデータに登録する
ことを特徴とする画像送信装置。
【請求項10】
画像データを添付した電子メールを送信宛先に向けて送信する通信部と、前記電子メールの送信を制限する場合のデータサイズを規定する送信制限データサイズがテーブルデータとして前記送信宛先に対応付けて記憶される制限サイズ記憶部とを有する画像送信装置の制御部を、
前記画像データを添付ファイルとする前記電子メールを生成するメール生成部と、
前記画像データ及び前記画像データを含む前記電子メールのいずれか一方のデータサイズの値と、前記送信宛先の送信制限データサイズの値とを比較し、比較結果に基づいて、前記電子メールの送信を制御するメール送信制御部として機能させる
ことを特徴とするプログラム。
【請求項11】
請求項10に記載のプログラムにおいて、
前記画像送信装置が、さらに、前記電子メールの送信宛先情報を含む、前記電子メールの送信に必要な情報が入力される入力部を有する場合に、
前記メール送信制御部は、前記制限サイズ記憶部に記憶された前記テーブルデータの中の、前記入力部から入力された前記送信宛先情報に対応する前記送信制限データサイズを用いる
ことを特徴とするプログラム。
【請求項12】
請求項10又は請求項11に記載のプログラムにおいて、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値が前記送信宛先の送信制限データサイズの値以上である場合に、前記電子メールの送信を中止する制御を行う
ことを特徴とするプログラム。
【請求項13】
請求項10又は請求項11に記載のプログラムにおいて、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値が前記送信宛先の送信制限データサイズの値以上である場合に、前記電子メールを分割して送信する制御を行う
ことを特徴とするプログラム。
【請求項14】
請求項10乃至請求項13のいずれか一項に記載のプログラムにおいて、
前記通信部は、ネットワークを介して、前記電子メールを前記送信宛先に向けて配送する複数の送信側のメールサーバと接続されており、
前記メール送信制御部は、前記画像データ及び前記画像データを含む前記電子メールのいずれか一方の前記データサイズの値に応じて、複数の前記送信側のメールサーバの中から使用するメールサーバを選択する制御を行う
ことを特徴とするプログラム。
【請求項15】
請求項10乃至請求項14のいずれか一項に記載のプログラムにおいて、
前記画像送信装置の制御部を、
さらに、前記通信部が、前記電子メールを前記送信宛先に向けて配送する1乃至複数のメールサーバから、前記電子メールの配送エラーを通知するエラーメールを受信した場合に、当該エラーメールに基づいて、前記制限サイズ記憶部に記憶された前記テーブルデータの内容を更新する受信メール解釈部として機能させる
ことを特徴とするプログラム。
【請求項16】
請求項15に記載のプログラムにおいて、
前記メール送信制御部は、前記電子メールが前記送信宛先に正常に送信されない場合に、前記エラーメールの送信を指示するコマンドを、前記1乃至複数のメールサーバの中の、当該画像送信装置と直接通信可能に接続された送信側のメールサーバに送信し、
前記受信メール解釈部は、前記エラーメールに基づいて、前記エラーメールに対応する前記電子メールの送信宛先情報及び当該エラーメールを送信した前記メールサーバを特定するサーバ特定情報のいずれか一方又は双方を取得し、前記エラーメールに対応する前記電子メールの前記データサイズを取得された情報に対応付けて前記テーブルデータに登録する
ことを特徴とするプログラム。
【請求項17】
請求項15又は請求項16に記載のプログラムにおいて、
前記受信メール解釈部は、前記エラーメールに対応する前記電子メールを配送エラー送信メールとし、前記エラーメールの内容を解釈することによって、当該配送エラー送信メールの前記送信宛先と前記データサイズとを特定し、特定された当該配送エラー送信メールの前記データサイズを更新送信制限データサイズとし、当該更新送信制限データサイズを当該配送エラー送信メールの前記送信宛先に対応付けて前記テーブルデータに登録する
ことを特徴とするプログラム。
【請求項18】
請求項15乃至請求項17のいずれか一項に記載のプログラムにおいて、
前記制限サイズ記憶部は、前記送信制限データサイズが前記テーブルデータとして前記送信宛先及び前記メールサーバのいずれか一方に対応付けて記憶されており、
前記受信メール解釈部は、前記エラーメールに対応する前記電子メールを配送エラー送信メールとし、前記エラーメールが、前記1乃至複数のメールサーバの中の、当該画像送信装置と直接通信可能に接続された送信側のメールサーバから送信された場合に、前記エラーメールの内容を解釈することによって、当該エラーメールを送信した前記メールサーバと当該配送エラー送信メールの前記データサイズとを特定し、特定された当該配送エラー送信メールの前記データサイズを更新送信制限データサイズとし、当該更新送信制限データサイズを当該エラーメールを送信した前記メールサーバに対応付けて前記テーブルデータに登録する
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2013−73349(P2013−73349A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210868(P2011−210868)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】