ASP メール処理

  目次







  メール送信用オブジェクト CDO for Windows 2000 について



以下は Microsoft の説明の一部を翻訳したものです

CDO for Windows 2000は、Microsoft ActiveXを必要とします。 このコンポーネントは、オペレーティングシステムのWindows2000シリーズの不可欠の部分であり、したがって、インストールする必要はありません。
当然 Windows XP でも動作します

ASP で使用する為の タイプライブラリの定数利用のサンプルコードを以下に示します

TyplibTest.asp
  
<!--METADATA
	TYPE="typelib"
	UUID="CD000000-8B95-11D1-82DB-00C04FB1625D"
	NAME="CDO for Windows 2000 Type Library" -->

<H4>CDO for Windows 2000 定数 (抜粋)</H4>
<TABLE>
<TR>
	<TD><b>cdoTo</b></TD>
	<TD><%= cdoTo %></TD>
</TR>
<TR>
	<TD><b>cdoFrom</b></TD>
	<TD><%= cdoFrom %></TD>
</TR>
<TR>
	<TD><b>cdoUTF_8</b></TD>
	<TD><%= cdoUTF_8 %></TD>
</TR>
<TR>
	<TD><b>cdoSendUsingPickup</b></TD>
	<TD><%= cdoSendUsingPickup %></TD>
</TR>
<TR>
	<TD><b>cdoSendUsingPort</b></TD>
	<TD><%= cdoSendUsingPort %></TD>
</TR>
</TABLE>
  

CDO for Windows 2000 定数 (抜粋)

cdoTo urn:schemas:httpmail:to
cdoFrom urn:schemas:httpmail:from
cdoUTF_8 utf-8
cdoSendUsingPickup 1
cdoSendUsingPort 2



  メール送信

以下は、テキストメールの送信です

  
<%
Call Response.AddHeader( "Content-Type", "text/html; Charset=shift_jis" )
Response.ExpiresAbsolute=#May 31,2000 23:59:59#

Dim strMessage

' **********************************************************
' MODEL
' **********************************************************
function SendMail()

	if Trim( Request.Form( "Body" ) ) = "" then
		strMessage = "本文を入力して下さい"
	end if
	if Trim( Request.Form( "From" ) ) = "" then
		strMessage = "送信者を入力して下さい"
	end if
	if Trim( Request.Form( "Subject" ) ) = "" then
		strMessage = "件名を入力して下さい"
	end if
	if Trim( Request.Form( "To" ) ) = "" then
		strMessage = "宛先を入力して下さい"
	end if
	if strMessage <> "" then
		Exit Function
	end if

	Set Cdo = Server.CreateObject("CDO.Message")

	Cdo.From = Request.Form( "From" )
	Cdo.To = Request.Form( "To" )
	Cdo.Subject	= Request.Form( "Subject" )
	Cdo.Textbody	= Request.Form( "Body" )

	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = _
		2
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
		"SMTPサーバのアドレス"
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = _
		25
	Cdo.Configuration.Fields.Update

	on error resume next
	Cdo.Send
	if Err.Number <> 0 then
		strMessage = Err.Description
	else
		strMessage = "送信が完了しました"
	end if
	on error goto 0

end function

' **********************************************************
' CONTROL
' **********************************************************
	if Request.Form( "send" ) = "送信" then
		Call SendMail()
	end if

%>

<!-- **********************************************************
  VIEW
*********************************************************** -->
<FORM method=POST>
宛先 <INPUT type=text name=To size=100
 value="<%= Request.Form( "To" ) %>"><br>
件名 <INPUT type=text name=Subject size=100
 value="<%= Request.Form( "Subject" ) %>"><br>
送信者 <INPUT type=text name=From size=100
 value="<%= Request.Form( "From" ) %>"><br>
<br>
<TEXTAREA
	cols=80
	rows=20
	name=Body
><%= Request.Form( "Body" ) %></TEXTAREA>
<INPUT type=submit name=send value="送信">
</FORM>
<HR>
<%= strMessage %>
  

  
HTML メールは Cdo.Htmlbody を使用します
( "<PRE>" & Request.Form( "Body" ) & "</PRE>" をセットすると良いでしょう )

添付ファイルは Cdo.AddAttachment( "添付ファイルへのパス" ) を実行します
  

詳細は Microsoft の こちら を参照して下さい

↓configuration フィールドの詳細
http://msdn.microsoft.com/en-us/library/ms526318(EXCHG.10).aspx

↓送信時のユーザー・パスワードの設定
http://winofsql.jp/VA003334/webwsh070428231841.htm

テキストエリアで タブを入力したい場合は こちら



  SMTP 認証に関して

clear text のみですが、以下のように指定します

  
	' Authentication Enum for smtpauthenticate
	' cdoAnonymous 0  Perform no authentication.
	' cdoBasic 1  Use the basic (clear text) authentication mechanism.
	' cdoNTLM 2 Use the NTLM authentication mechanism.

	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/sendusername") = MailUser
	Cdo.Configuration.Fields.Item _ 
	 ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = MailPass
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ