仕事上必要な工夫など、備忘録として残します。
Excel等からCDOを利用しメールクライアントを介さずにメールする(2)
GoMail関数改
Sub GoMail(t As Variant, sj As Variant, bd As Variant, Optional at As Variant) Set objMail = CreateObject("CDO.Message") Worksheets("setting").Select With Sheets("setting") objMail.to = t '送信先アドレス objMail.Subject = sj 'メール題名 objMail.TextBody = bd '本文 If at <> "" Then objMail.AddAttachment at '添付ファイル objMail.From = .Range("B1") chars = .Range("B2") If chars = "" Then chars = "utf-8" objMail.BodyPart.Charset = chars objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = .Range("B3") objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = .Range("B4") objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = .Range("B5") objMail.Configuration.Fields.Update End With objMail.Send Set objMail = Nothing End Subこのコードは標準モジュールに記載してあります。
呼び出し側
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