仕事上必要な工夫など、備忘録として残します。
Excel等からCDOを利用しメールクライアントを介さずにメールする
呼び出し側
コマンドボタンをシートに作成して下さい。Private Sub CommandButton1_Click() fad="abc@gmail.com" ' 発信者アドレス tad="xyz@gmail.com" '送信先アドレス mbody="Hello" 'メール本文 sbj="Mail Test" 'メール題名 '添付ファイルを指定してUTF-8形式で送信 Call Gomail(fad,tad,sbj,mbody,"c:a.csv","UTF-8") End Sub
メール送信コア部分
Sub GoMail(fm As Variant, t As Variant, sj As Variant, bd As Variant, Optional at As Variant, Optional chars As Variant)
Set objMail = CreateObject("CDO.Message")
objMail.From = fm ' 発信者アドレス
objMail.To = t '送信先アドレス
objMail.Subject = sj 'メール題名
objMail.TextBody = bd '本文
If at <> "" Then objMail.AddAttachment at '添付ファイル
If chars = "" Then chars = "utf-8" 'エンコード
objMail.BodyPart.Charset = chars
strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
With objMail.Configuration.Fields
.Item(strConfigurationField & "sendusing") = 2 '送信方法=SMTP使用
.Item(strConfigurationField & "smtpserver") = "xxx.xxx..xxx.xxx"'SMTPのIPアドレス
.Item(strConfigurationField & "smtpserverport") = 25
.Update
End With
objMail.Send
Set objMail = Nothing
End Sub
.Item(strConfigurationField & "smtpusessl") = True .Item(strConfigurationField & "smtpauthenticate") = 1 .Item(strConfigurationField & "sendusername") = "xxxxx@gmail.com" .Item(strConfigurationField & "sendpassword") = "password" .Item(strConfigurationField & "smtpconnectiontimeout") = 60
Call GoMail(発信者メールアドレス,宛先メールアドレス,メール件名,本文[,添付ファイル,エンコード]) で呼び出します。 添付ファイルの指定がなければ当たり前ですが添付しません。 エンコードの指定がなければデフオルトはUTF-8にしてあります。※KingSoftSpreadsheets2010 VBA版でも動作しました。
プロフィール
カレンダー
ブログ内検索
カテゴリー
最新記事
忍者カウンター
P R