- PR -

ASP.NETで添付ファイル付メール送信でエラーが発生します

投稿者投稿内容
ミック
会議室デビュー日: 2006/08/15
投稿数: 5
投稿日時: 2006-08-15 10:12
お世話になります。

ASP.NETでメール送信を行うプログラムを作成しているのですが
添付ファイルを付けて送信するとエラーが発生してしまいます。

エラー内容は以下です。
 メール アタッチメント 'C:\test\aaa.txt' が無効です。
 説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。
 エラーに関する詳細および例外の発生場所については、
 スタック トレースを参照してください。

 例外の詳細: System.Web.HttpException:
 メール アタッチメント 'C:\test\aaa.txt' が無効です。


コードは以下のように記述しています。

 Private MailMsg As New System.Web.Mail.MailMessage
 Private MailAttch As System.Web.Mail.MailAttachment

 Private Sub Buttom1_ServerClick(ByVal sender As System.Object,
ByVal e As System.EventArgs
) Handles btnSosin.ServerClick

MailMsg.From = "webmaster@TestSystem.co.jp"
MailMsg.To = "Test@TestSystem.co.jp"
MailMsg.Subject = "タイトル"
MailMsg.Body = "本文"

If Trim(FileTenpu.Value) <> Nothing Then
MailAttch = New System.Web.Mail.MailAttachment(Trim(FileTenpu.Value),_
Web.Mail.MailEncoding.Base64)
↑↑↑この部分でエラーが発生します↑↑↑
MailMsg.Attachments.Add(MailAttch)
End If
System.Web.Mail.SmtpMail.Send(MailMsg)


localhostで実行しているときは添付ファイルは問題なく送信されるのですが、
別のPCからアクセスするとこのようなエラーが発生します。

権限の問題かと思い、添付する対象のファイルに「ASPNET」ユーザーのアクセス権限を
与えてみたのですがエラーは発生したままでした。

何か解決策が御座いましたらご教授よろしくお願いいたします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-08-15 10:53
こんにちは。

FileTenpu.Value プロパティ?の正体が気になります。
FileTenpu.Value に入っている値はサーバサイドに存在するファイルのパスなのでしょうか。

_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
ミック
会議室デビュー日: 2006/08/15
投稿数: 5
投稿日時: 2006-08-15 11:06
返信ありがとうございます。

説明不足で申し訳ありません。
FileTenpu.Value は INPUTのTYPEがFileのコントロールですが
このファイルパスは操作しているPCのローカルのファイルのパスを設定します。
サーバ側のファイルを指定することは、現在のところは無いと考えています。
鶴屋さん
会議室デビュー日: 2006/08/11
投稿数: 7
投稿日時: 2006-08-15 11:12
>>FileTenpu.Value は INPUTのTYPEがFileのコントロールですが
>>このファイルパスは操作しているPCのローカルのファイルのパスを設定します。
>>サーバ側のファイルを指定することは、現在のところは無いと考えています。

サーバーの内部処理でクライアントのファイルを直接操作するのはセキュリティー上不可能です
ただ、この場合はサーバーへアップロードしているはずなので、
テンポラリに保存してからメール送信してはいかがでしょうか?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-08-15 11:17
こんにちは。

鶴屋さんがすでに書かれていますが、サーバーの処理でクライアントのファ
イルを直接操作することは出来ません。
こういった話は何度か出てきていますが、クライアントサイドの処理とサーバー
サイドの処理の違いを考えてみてください。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
ミック
会議室デビュー日: 2006/08/15
投稿数: 5
投稿日時: 2006-08-15 11:35
みなさんお返事いただきありがとうございます。

鶴屋さんがおっしゃった
一度テンポラリに保存してからメールを送信する
という方法でやってみようと思います。

お手数をおかけして申し訳ありません。
ご教授ありがとうございました。
ヨン
会議室デビュー日: 2006/07/23
投稿数: 5
投稿日時: 2006-08-22 17:32
すみません。
同じ事で悩んでいます。

一度テンポラリに保存してからメールを送信する という方法ってどうやるんですか?

すいませんが教えていただけないでしょうか?
鶴屋さん
会議室デビュー日: 2006/08/11
投稿数: 7
投稿日時: 2006-08-23 11:10
アップロードしたファイルをサーバー内の任意の作業フォルダに保存します
次に、そのファイルを添付フィルに設定してメールの送信処理を行います
以上です


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