2013年08月07日


Yahoo!メールで簡単メール送信( CDO.Message+VBScript関数 )

ポートが 465 なのは、SSL を使う場合のポートで、587 でも別の仕様で暗号化が可能ですが、Cdo が使えるのは 465 の標準の SSLのみです。

フリーメールで安心して使えそうなのは、Yahoo!メールとGmail です。Gmail でも同様に使えるはずです。
( hotmail は、Cdo で利用できませんが、587 の使えるソフトならば可能です )

Cdo で、587 番を使ったサブミッションポートの利用は可能ですが、その場合は認証部分が暗号化されないので内部的なメール送信で使う事をお勧めします。( 他のソフトならば認証部分だけの暗号化は可能です )
Dim ErrorMessage
' **********************************************************
' Yahoo!メール送信
' **********************************************************
YahooMail = "???????@yahoo.co.jp"
strName = "日本語で自分の名前"
strPass = "パスワード"
strTo = "宛先 <宛先のメールアドレス>"
strSubject = "Yahoo!メール+CDO.Message"
strBody = "本文" & vbCrLf + "です"

if YahooSend( YahooMail, strName, strPass, strTo, strSubject ,strBody ) then
	MsgBox("メールを送信しました")
else
	MsgBox( ErrorMessage )
end if

' **********************************************************
' Yahoo!メールで単純メール送信
' **********************************************************
Function YahooSend( _
	mailaddr, _
	jname, _
	pass, _
	mailto, _
	subj, _
	body _
)

	Dim Cdo

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

	Dim aAuth

	aAuth = Split( mailaddr, "@" )
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/sendusername") = aAuth(0)
	Cdo.Configuration.Fields.Item _ 
	 ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = pass

	if jname <> "" then
		Cdo.From = jname & " <" & mailaddr & ">"
	else
		Cdo.From = mailaddr
	end if
	Cdo.To = mailto
	Cdo.Subject	= subj
	Cdo.Textbody = body

	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.yahoo.co.jp"
	Cdo.Configuration.Fields.Item _
	 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465

	Cdo.Configuration.Fields.Update

	YahooSend = true

	on error resume next
	Cdo.Send
	if Err.Number <> 0 then
		ErrorMessage = Err.Description
		YahooSend = false
	end if
	on error goto 0

End Function

Gmail は、サーバーが smtp.gmail.com です。


タグ:通信
posted by at 16:38 | Comment(0) | ツール | このブログの読者になる | 更新情報をチェックする


この記事へのコメント
コメントを書く
お名前:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。