- PR -

メールの一括送信処理

投稿者投稿内容
コウイチ
常連さん
会議室デビュー日: 2003/11/04
投稿数: 48
投稿日時: 2004-06-21 10:39
こんにちは!
よろしくお願いします。

メールの送信処理を以下のようにすると、一通ごとに送信処理がされます。
一通ごとではなく、送信するメールを一括で送信処理するようにしたのですが、
どのようにすればいいでしょうか?

それと、「★☆★」の部分ですが、
送信に失敗した場合に、特定のメールアドレス(CCC@ccc.com)に
送り返すということを(失敗したメールを管理)したいのですが、
ヘッダ「Return-path」は、メールサーバでしか設定できないのでしょうか?
送信者側で、エラー時の送り返し先を設定できないのしょうか?

以上2つです。
よろしくお願いします。m(_ _)m


開発環境:WindowsXP Pro、VS.NET 2003 ( C# )

for( int i=0; i<30; i++)
{
 System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
 //送信者
 mm.From = "sender"+ i + " <AAA_" + i + "@aaa.com>";
 //あて先
 mm.To = "recipient"+ i + " <BBB_" + i + "@bbb.com>";
 //件名
 mm.Subject = "テスト0" + i;
 //本文
 mm.Body = "これは、ユーザー " + i + " のテストメールです。";
 //本文の文字コードを指定する(ここではJIS)
 mm.BodyEncoding = System.Text.Encoding.GetEncoding(50220);

 //ヘッダを追加する
 //Reply-Toを追加する
 mm.Headers.Add("Reply-To", "AAA_" + i + "@aaa.com");
 mm.Headers.Add("Return-path", "CCC@ccc.com"); // ★☆★

 //SMTPサーバーを指定する
 System.Web.Mail.SmtpMail.SmtpServer = "mail.aaa.com";
 //送信する
 System.Web.Mail.SmtpMail.Send(mm);
 mm = null;
}
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-06-21 11:36
引用:

コウイチさんの書き込み (2004-06-21 10:39) より:

メールの送信処理を以下のようにすると、一通ごとに送信処理がされます。
一通ごとではなく、送信するメールを一括で送信処理するようにしたのですが、
どのようにすればいいでしょうか?


ですが、送信者は複数いるのですか?
コード:
 //送信者
 mm.From = "sender"+ i + " <AAA_" + i + "@aaa.com>";


もしそうでなければ、Toプロパティの方をセミコロン区切りでアドレス指定すれば、一通のメール送信で複数の宛先に送ることができます。
引用:

それと、「★☆★」の部分ですが、
送信に失敗した場合に、特定のメールアドレス(CCC@ccc.com)に
送り返すということを(失敗したメールを管理)したいのですが、
ヘッダ「Return-path」は、メールサーバでしか設定できないのでしょうか?
送信者側で、エラー時の送り返し先を設定できないのしょうか?


こちらは、SMTPサーバかどこかで削除されてそうですね。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-06-21 11:42
ども。がるともうします。
んと、ぢゃん♪ さんが書かれているのでいくつか捕捉を。

まず、Toヘッダなのですが、無限にかけるわけではないです。
数量制限があるので、あんまりな量であれば分解することを
お勧めします。

んでまぁ「他の人のアドレスが見えないように」配慮する理由
もあるので、基本的には一括送信はあまりお勧めしないです ^^;

あとReturn-pathは本来MTAが設定するものです。
もしここを設定したい場合
・問答無用で書き込んでみる
・SMTPサーバとのやり取りの「MAIL_FROM(エンベローブfrom)」で渡す
のいずれかが正道かなぁ、と。
ただ、ちとWinの知識がないので「どうやって実装するか」はよく
わからないのですが^^;

RFCの日本語訳とかを少し読んでみると、色々書いてあると思いますよ ^^





ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-06-21 12:02
ちなみに、
引用:

がるがるさんの書き込み (2004-06-21 11:42) より:

んでまぁ「他の人のアドレスが見えないように」配慮する理由
もあるので、基本的には一括送信はあまりお勧めしないです ^^;

について私ならば

  • Bccプロパティを使う
  • (特定の送信者しか許さない)メーリングリストの環境を別途用意する
あたりを考えます。
コウイチ
常連さん
会議室デビュー日: 2003/11/04
投稿数: 48
投稿日時: 2004-06-21 13:16
ぢゃん♪さん、がるがるさん、返信ありがとうございます。

送信者は複数います。
その送信者それぞれに対して、送信先、メール本文はバラバラです。

Return-pathですが、
・問答無用で書き込んでみる
とうのは、今してる状態だと思うんですが、
メールのヘッダを見てみると
「Return-Path: <CCC@ccc.com>」
は、あるのですが、ヘッダの一番上に
「Return-Path: <AAA@aaa.com>」
と、メールサーバに付け加えられたReturn-Pathがあるので、
そっちにエラー時は送られてしまいます。

・SMTPサーバとのやり取りの「MAIL_FROM(エンベローブfrom)」で渡す
というのは、ヘッダのFrom:を代えるということでしょうか?
From:をCCC@ccc.comに設定すれば、Return-pathは、CCC@ccc.comに変わりますが、
差出人も変わってしまいます。><

よろしくお願いします。m(_ _)m
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-06-21 14:28
どもです。がるです。

引用:

Bccプロパティを使う


はごく普通に正しいと思うのですが。ちぃと、マイナーな問題が
ありまして。
まれ〜になのですが「BCCヘッダを削除しない」環境があるらしい
です。
あと、あんまり件数が多いと結局ヘッダlengthで問題が発生しますし。
なので、ある程度以上の量になるときは、一括だと問題がおきやすい
のが現状のプロトコル事情だと思うです。

引用:

・SMTPサーバとのやり取りの「MAIL_FROM(エンベローブfrom)」で渡す
というのは、ヘッダのFrom:を代えるということでしょうか?
From:をCCC@ccc.comに設定すれば、Return-pathは、CCC@ccc.comに変わりますが、
差出人も変わってしまいます。><


んと…ヘッダとエンベローブは異なるものになります。
SMTP エンベローブ
あたりをキーワードにして、Googleあたりで検索してみてくださいませ。
SMTPのやり取り(エンベローブ)とデータ(ヘッダ&ボディ)の差異が
見えてくると思うです ^^

ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-06-21 14:54
引用:

コウイチさんの書き込み (2004-06-21 13:16) より:

送信者は複数います。
その送信者それぞれに対して、送信先、メール本文はバラバラです。


の時点で、もはやコウイチさんが最初に示した方法以外にないような。
特に送信者がバラバラ、本文もバラバラ……な時点で「一括」などないですね。
引用:

がるがるさんの書き込み (2004-06-21 14:28) より:

引用:

Bccプロパティを使う


はごく普通に正しいと思うのですが。ちぃと、マイナーな問題が
ありまして。
まれ〜になのですが「BCCヘッダを削除しない」環境があるらしい
です。


うわ〜嫌〜〜〜〜〜んな環境ですね〜〜〜〜〜〜〜〜〜。
それのどこが "Blind" carbon copy だか
引用:

あと、あんまり件数が多いと結局ヘッダlengthで問題が発生しますし。
なので、ある程度以上の量になるときは、一括だと問題がおきやすい
のが現状のプロトコル事情だと思うです。


そうなるのが普通ですので、だからこそのメーリングリスト環境でしょう。
(ちなみに議論用MLだと、活発なとこだと数千人は当たり前……。)
……それがだめなら直接SMTPと生なやり取りをするか。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-06-21 15:06 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-06-21 15:28
引用:

ぢゃん♪さんの書き込み (2004-06-21 14:54) より:
引用:

がるがるさんの書き込み (2004-06-21 14:28) より:
まれ〜になのですが「BCCヘッダを削除しない」環境があるらしい
です。


うわ〜嫌〜〜〜〜〜んな環境ですね〜〜〜〜〜〜〜〜〜。
それのどこが "Blind" carbon copy だか


あります。今時、誰も使ってないとは思いますが、Netscape Messaging Server 3.5 がそうでした。BCCヘッダの削除については、特に規定されていないんでしょうか?

ただ、BCCヘッダが削除される事を期待する前に、BCCをヘッダに記述すること自体、必要無いんじゃないの? と、思ってしまうのですが...。

スキルアップ/キャリアアップ(JOB@IT)