人に聞けない痔の悩み、これでスッキリ >>

いつも拝見させていただいております。
さっそくですが、質問したいことがあります。

現在、pop before smtpにてメールを送信したいと考えております。

色々、調べてみたのですが、Cを勉強し始めて間もないのもありなかなかメールの送信がうまくいきません。
CDOを使用してメール送信を行う手順については調査してみたもののpop before smtpは使用できない旨が
ネット検索を行った際に記載してあり使用できないことは判明しております。

一般的に使用する手順等があるのかわかりませんが、上記pop before smtpを実現する方法がありましたら
ご教授お願いします。
参考になるURLでも何でも結構ですのでよろしくお願い致します。

(外部DLLを使用しない形で対応したいと考えております。
basp21ではできるようなことは検索した際に発見しましたが、できれば避けたいと考えております。)

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>CDOを使用してメール送信を行う手順については調査してみたもののpop before smtpは使用できない旨がネット検索を行った際に記載してあり使用できないことは判明しております。



pop before smtpとは「smtpサーバーに接続する前に、popサーバーに接続してユーザー認証をしなさい」と言う仕掛けです。

pop before smtpでの送信手順は、以下のようになります。

1.POPサーバーに接続する(ポート110でtelnet接続する)
2.POPサーバーにUSERコマンドでログインアカウントを送る
3.POPサーバーにPASSコマンドでログインパスワードを送る
4.ログインメッセージが返って来たらQUITコマンドで接続を切る
5.SMTPサーバーに接続する(ポート25でtelnet接続する)
6.SMTPサーバーにHELOコマンドで、先ほどPOPしたホストと同一である事を明示する
7.SMTPサーバーにMAIL FROM:コマンドで自己アドレスを指示する
8.SMTPサーバーにRCPT TO:コマンドで宛先アドレスを指示する
9.SMTPサーバーにDATAコマンドでメールのヘッダと本文を送る
10.QUITコマンドでSMTPサーバーとの接続を切る

このうち、5~10は、CDOなどの既存の送信コンポーネントで実現できます。

また、1~4も、既存の受信コンポーネントで「メールの受信は行わず、サーバ上のリストを取得するだけ」などの処理で代替できます。

つまり「メール受信コンポーネントと、メール送信コンポーネントを用意すれば良いだけ」なのです。そして、受信と送信を連続して行えば良いだけなのです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほど。一括した処理というわけではないのですね。

CDOを使用して何度か送信を試みたのですが、smtpサーバ名が何を指定したらよいかよく分かりません。
(簡単なvbsにて送信を行いましたがエラーになってしまって送信できませんでした。smtpサーバ名は
Exchangeサーバを入力して実行)

重ね重ね質問をしてしまって申し訳ありませんが、Exchangeサーバへの接続の際はsmtpサーバ名はoutlook等の
設定に表示されている箇所が存在するのでしょうか?
Exchangeサーバ名を設定するだけでsmtpサーバ名等を指定することがなかったので。。。
(上記からわかるかと思われますが、Exchangeサーバについても勉強不足のため、
仕組みがどうなっているのかよくわかっていません)

お礼日時:2008/04/25 16:23

>CDOを使用して何度か送信を試みたのですが、smtpサーバ名が何を指定したらよいかよく分かりません。



プロバイダと契約した時に、メールアドレスを1つ貰えた筈です。その際に「POPサーバー名」「SMTPサーバー名」「POPユーザーアカウント」「POPパスワード」など、メールに関する「接続情報」の書類を受け取った筈です。

そこに書いてある「SMTPサーバー名」を指定します。

「メルアドはフリーで取得したWEBメールしかない」「メルアドは持ってない」としたら「貴方が自由に利用できるSMTPサーバーは無い」ので、メール送信は諦めて下さい。

>重ね重ね質問をしてしまって申し訳ありませんが、Exchangeサーバへの接続の際は

「Exchangeサーバ」は、マイクロソフト独自のプロトコルとサービスを用いた「Windowsの世界ででしか通じない、popやsmtpとは直接には無関係の、別世界のシロモノ」なので「Exchangeサーバを介してメールを送受信する」には「Exchangeサーバ専用のDLLとコンポーネントが必要」です。

「Exchangeサーバを介してメールを送受信する」と、何が起こるかと言うと「Exchangeサーバ自信が、ユーザーの代わりにpopサーバーとsmtpサーバーに接続してメールを送受信して、受け取ったメールはExchangeサーバに溜まり、ユーザーは独自のプロトコルとサービスを用いて、Exchangeサーバに溜まったメールを受け取る」のです。

「Exchangeサーバはマイクロソフト独自の異世界の物」なので、このサーバーと接続するプログラムを書くには「マイクロソフトが開発者向けに高額で提供しているデベロッパーキットに入っているコンポーネントが必要」です。

メール送受信の世界標準のプロトコルはsmtpとpop3です。なので、今すぐ「Exchangeサーバの事は忘れ去り」ましょう。Exchangeサーバの知識は習得しても何の役にも立ちません。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q.NETでEXCHANGE SERVERのメールを受信する方法

.NETでEXCHANGE SERVERのメールを受信する方法

.NET で EXCHANGE SERVER に ログインしメールを取得するAPIがあれば教えてください。

Visual Stduio 2008
.net 3.5
Visual Basic

Aベストアンサー

Exchange Server
↑バージョンいくつですか?

まぁバージョンを聞いたところで私は経験がないのですが、、、


経験がないなりに調べてみると
http://support.microsoft.com/kb/813349/ja
「System.Web.Mai」が書いてありますね。
ってことは、普通のメールサーバーのロジックが使えるのかな?
http://dobon.net/vb/dotnet/index.html#internet


それと直接サーバじゃなく、クライアントから拾ってもよいのであれば
http://msdn.microsoft.com/ja-jp/library/dd296852.aspx
の「電子メールとの対話」とかが参考になるのかな?



未経験者なので、トンチンカンな発言かも知れません。
そうであった場合は読み飛ばしてください。


がんばってください。

Q自動でメールを送信するCMDのバッチファイル

自動でメールを送信する為のCMDのバッチファイルを
作成しようと思いましたが、
そんな事ってできますでしょうか?

Windows既存のexeファイルなどを使ってよいので
何とか、自動でメールを送信するバッチファイルを
作成したいと思っていますが方法が分からず悩んでいます。

よろしくお願いします。

Aベストアンサー

CMD の Bath では無いのですが、VBSではいかが?
下記を適当なファイル名で拡張子を、VBS にして保存後、実行してみて下さい
送り先アドレスをセミコロン ; で区切れば複数にも送信できます。
ネタ元はこちら
http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html

Set objShell = CreateObject("Wscript.Shell")
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "YourName@GooChoki.com" '送信元
oMsg.To = "HisName@Par.com"'送信先
oMsg.Subject = "Test "
oMsg.TextBody = "テストメッセージです" & vbCrLf & Now
oMsg.AddAttachment Wscript.ScriptFullName '添付ファイルにこのVBSを指定
oMsg.Send

CMD の Bath では無いのですが、VBSではいかが?
下記を適当なファイル名で拡張子を、VBS にして保存後、実行してみて下さい
送り先アドレスをセミコロン ; で区切れば複数にも送信できます。
ネタ元はこちら
http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html

Set objShell = CreateObject("Wscript.Shell")
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "YourName@GooChoki.com" '送信元
oMsg.To = "HisName@Par.com"'送信先
oMsg.Subject = "Test "
oMsg.TextBody = "...続きを読む

QExchange ServerのSMTPサーバー

Exchange Server5.5をイントラネット運用しています。
このサーバーマシンに対してTELNET サーバーマシン名 25しても「接続に失敗しました」といわれます。念のため、サーバー機自身から行っても同様の反応です。

イントラ運用の時にはSMTPサーバーが稼動してないのでしょうか?
それともポート番号は25でないのでしょうか?

ご存知の方がおられましたらよろしくお願いします。

Aベストアンサー

Microsoft Exchange Serverはメールサーバではなくスケジュール
管理サーバです。
基本的にはLotusのようなグループウェアです。

http://ja.wikipedia.org/wiki/Microsoft_Exchange_Server

一応、メール機能を持っていますがこれはSMTPサーバではなく独自の
プロトコルです。
外部のSMTPサーバへメールを転送する機能もありますが、純粋に
SMTPサーバではありません。
Exchange ServerにアクセスできるのはExchangeクライアントである
Microsoft Outlook(OEではない)のみです(ただ、他にも互換性のある
ソフトがないとは限らないですけど)。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Q[VBA]CDOメッセージ送信エラー

CDOメッセージオブジェクトを使用し、EXCEL2010 VBAよりメール送信を実現したいのですが..
下記コードの .Sendを実行後にエラーメッセージ「[6]オーバーフローしました」が表示されます。
試行錯誤しておりますが..自力では解決できないため、皆様よりご教授賜りたく何卒よろしくお願い
申し上げます。
---------------------------------------------------------------------------------------------------------
Public Sub SendMail()
Dim objCDOMsg As New CDO.Message '/* CDOメッセージオブジェクト */

'// Dim objCDOMsg As Object '/* CDOメッセージオブジェクト */
'// Set objCDOMsg = CreateObject("CDO.Message")

With objCDOMsg
' /* メールサーバ設定 */
With .Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = CdoSendUsing.cdoSendUsingPort '/* 外部SMTP指定 */
.Item(CdoConfiguration.cdoSMTPServer) = "111.222.333.44" '/* SMTPサーバ名 */
.Item(CdoConfiguration.cdoSMTPServerPort) = 25 '/* ポート№ */
.Item(CdoConfiguration.cdoSMTPConnectionTimeout) = 60 '/* タイムアウト */
.Item(cdoSMTPAuthenticate) = cdoAnonymous '/* SMTP認証なし */
.Item(CdoConfiguration.cdoLanguageCode) = CdoCharset.cdoShift_JIS '/* 文字セット */
.Update
End With

' /* メール編集 */
.To = "test@aaa-bbb.com" '/* 宛先 */
.CC = "test@aaa-bbb.com" '/* CC */
.From = "test@aaa-bbb.com" '/* 送信者 */
.Subject = "Test mail" '/* 件名 */
.TextBody = "メール本文" '/* メール本文 */
.AddAttachment "C:\Users\term\Desktop\TempFile.txt" '/* 添付ファイル */

' /* メール送信 */
.Send <------------------- このコードをステップ実行後にエラーメッセージ表示
End With

' /* オブジェクト変数解放 */
Set objCDOMsg = Nothing
End Sub
---------------------------------------------------------------------------------------------------------
[実行環境]
・Windows 7 Professional SP1
・EXCEL 2010 (Ver. 14.0.7165.5000)
・Outlook 2010(Ver. 14.0.7165.5000)

[補足]
・Outlook セキュリティセンターの設定
DEP有効、マクロ警告、プログラムアクセス警告
・Outlook アカウント種類
POP/SMTP

以上、宜しくお願いいたします。

CDOメッセージオブジェクトを使用し、EXCEL2010 VBAよりメール送信を実現したいのですが..
下記コードの .Sendを実行後にエラーメッセージ「[6]オーバーフローしました」が表示されます。
試行錯誤しておりますが..自力では解決できないため、皆様よりご教授賜りたく何卒よろしくお願い
申し上げます。
---------------------------------------------------------------------------------------------------------
Public Sub SendMail()
Dim objCDOMsg As New CDO.Message '/* CD...続きを読む

Aベストアンサー

こんにちは。

正直な話、もうCDOを使ったのは古い昔の話なので、このエラーの要因というのは、コードそのものよりも、固有の設定に問題があるように思います。

自分で作ってみました。
ご質問のコードを元に、googleを使って自分自身用に作ってみました。
以下のコードで送られることは確認しましたが、ここ最近、Google は、メールの設定が異様に厳しくなりましたので、Google自体のメール・セキュリテイの設定を下げないとGoogleからは送信されませんが、コード自体は問題なさそうです。

>「転送においてサーバーに接続できませんでした」
このエラーメッセージは、Configuration のミスで発生しました。正しく直したら、通りました。

細かい問題は、相手のメールサーバーとの関係ですから、設定を細かく見ていくしかないと思います。

'//
Const myAddress As String ="********"
Const myPSW As String = "********"

Public Sub SendMail2()
Dim objCDOMsg As CDO.Message ' New CDO.Message '/* CDOメッセージオブジェクト */do.
Set objCDOMsg = New CDO.Message
'// Dim objCDOMsg As Object '/* CDOメッセージオブジェクト */
'// Set objCDOMsg = CreateObject("CDO.Message")
On Error GoTo ErrHandler
With objCDOMsg
  ' /* メールサーバ設定 */
  With .Configuration.Fields
    .Item(CdoConfiguration.cdoSendUserName) = myAddress '/*ユーザー名*/
    .Item(CdoConfiguration.cdoSendPassword) = myPSW  '/*パスワード*/
    .Item(CdoConfiguration.cdoSendUsingMethod) = CdoSendUsing.cdoSendUsingPort '/* 外部SMTP指定 */
    .Item(CdoConfiguration.cdoSMTPConnectionTimeout) = 100 '/* タイムアウト */
    .Item(CdoConfiguration.cdoSMTPServer) = "smtp.gmail.com" ' /* SMTPサーバ名 */
    .Item(CdoConfiguration.cdoSMTPServerPort) = 465 '/* ポート№ */
    .Item(CdoConfiguration.cdoSMTPAuthenticate) = cdoBasic
    .Item(CdoConfiguration.cdoSMTPUseSSL) = True
    .Item(CdoConfiguration.cdoLanguageCode) = CdoCharset.cdoShift_JIS '/* 文字セット */
    .Update
  End With
  
  ' /* メール編集 */
  .To = "xxxxxx@yyyyy.co.jp" '/* 宛先 */
  .From = "******@gmail.com" '/* 送信者 */
  .Subject = "Test mail" '/* 件名 */
  .TextBody = "MainMessage" & vbNewLine & Date & " " & Time & vbNewLine & _
   "This is TesMail" '/* メール本文 */
  '.AddAttachment ThisWorkbook.Path & "\myTest.Txt" ' "C:\Users\term\Desktop\TempFile.txt" '/* 添付ファイル */

  ' /* メール送信 */
  .Send '<------------------- このコードをステップ実行後にエラーメッセージ表示
End With
ErrHandler:
If Err.Number <> 0 Then
   MsgBox Err.Number & " :" & Err.Description
   'Debug.Print Err.Number & " :" & Err.Description
End If
' /* オブジェクト変数解放 */
Set objCDOMsg = Nothing
End Sub

こんにちは。

正直な話、もうCDOを使ったのは古い昔の話なので、このエラーの要因というのは、コードそのものよりも、固有の設定に問題があるように思います。

自分で作ってみました。
ご質問のコードを元に、googleを使って自分自身用に作ってみました。
以下のコードで送られることは確認しましたが、ここ最近、Google は、メールの設定が異様に厳しくなりましたので、Google自体のメール・セキュリテイの設定を下げないとGoogleからは送信されませんが、コード自体は問題なさそうです。

>「転送においてサー...続きを読む

QVBSでメール送信

VBS初心者です。
以下のサイトを参考に,特定のフォルダにファイルが追加されたら,
指定のメールアドレスに添付して送信するVBSを作成してみました。

http://plaza.rakuten.co.jp/mscrtf/diary/201206260000/

ちなみに記述を少しだけ変えて,
送信したファイルを削除しないようにしています。
しかしこうしてしまうと,「送信フォルダ」にファイルが追加されると,
その新しく追加されたファイルではなく,
前から置いてある別のファイルが送信されてしまいます。
「最新のファイルを添付して送信」することはできないでしょうか?

またファイルを添付してメールを送信することはできるのですが,
なぜか送信受信ともに,まったくおなじメールが2通作成されてしまいます。
(2通同時ではなく1通目が届いて30秒後くらいにもう1通届きます)。

あと,受信側メールアドレスをbbb@hotmail.co.jpにし,
smtpserver:smtp.live.com
smtpserverport:587
とすると
「転送においてサーバーに接続できませんでした」と出てしまいます。
ポート番号を,465や25にしてみましたがだめでした。
どこを直せばいいでしょうか?

以上の解決策をご教授ください!

コードは以下です。

Dim Fs, strPath, Fl, F, NewFile, NewFileFP, OutF
Set Fs = CreateObject("Scripting.FileSystemObject")
strPath = "C:\FileSend\送信フォルダ\"
NewFile = ""
Set Fl = Fs.GetFolder(strPath)
For Each F In Fl.Files
If F.Name > NewFile Then
NewFile = F.Name
End If
Next
NewFileFP = Fl & "\" & NewFile
Dim WshShell, BtnCode
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Wscript.Shell")
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "ファイル送信元 <aaa@gmail.com>" '送信元
oMsg.To = "bbb@hotmail.co.jp" '送信先

oMsg.Subject = "ファイルの送信test3" '件名
oMsg.TextBody = "ファイルをお送りします。" 'メール本文
oMsg.AddAttachment NewFileFP '添付
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.googlemail.com"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "aaa@gmail.com"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
oMsg.Configuration.Fields.Update
oMsg.Send

oMsg.Configuration.Fields.Update
oMsg.Send
Set OutF = Fs.OpenTextFile("C:\FileSend\test.txt",8)
OutF.WriteLine "Date[" & date & "] Time[" & time & "] File[" & NewFile & "]"
OutF.Close

objShell.Popup "メール送信しました。", 0, "送信完了", 0
Set Fs = Nothing
Set Fl = Nothing
Set OutF = Nothing

使用しているパソコンは
Win7Professional 32bit
です。

よろしくお願いいたします!

VBS初心者です。
以下のサイトを参考に,特定のフォルダにファイルが追加されたら,
指定のメールアドレスに添付して送信するVBSを作成してみました。

http://plaza.rakuten.co.jp/mscrtf/diary/201206260000/

ちなみに記述を少しだけ変えて,
送信したファイルを削除しないようにしています。
しかしこうしてしまうと,「送信フォルダ」にファイルが追加されると,
その新しく追加されたファイルではなく,
前から置いてある別のファイルが送信されてしまいます。
「最新のファイルを添付して送信」することは...続きを読む

Aベストアンサー

 簡単なところから回答いたします。

> なぜか送信受信ともに,まったくおなじメールが2通作成されてしまいます。
 これは、
oMsg.Configuration.Fields.Update
oMsg.Send
がダブっているからです。

 参考にされた サイト にも2回は書いてありません。

 コーディング をされる際に、誤ってコピペでもされたのでしょうが、メール送信スクリプト などを書かれるときには、細心の注意が必要です。

●CDO.Messageによるメール送信
http://serialty.blog117.fc2.com/blog-entry-10.html
のように、[With ステートメント] を使ったり、長い文字列を
strConfigurationField ="http://schemas.microsoft.com/cdo/configuration/"
というように、定数に代入したりして、コード の可読性を高める工夫をされることをお薦めします。

--------------------------------------------------

>「最新のファイルを添付して送信」することはできないでしょうか?
 お示しの コード で添付ファイルを決定しているのは、
  For Each F In Fl.Files
    If F.Name > NewFile Then
      NewFile = F.Name
    End If
  Next
の部分ですが、これは、strPath フォルダ 内の ファイルを、名前順に巡回(For ~ Next ループ)して、最後の ファイル を NewFile に代入しています。
 従いまして、NewFile に代入されるのは、「前から置いてある別のファイル」ではなくて、名前の昇順に並べた場合の最後の ファイル ということになります。


 「最新のファイル」を特定するためには、strPath フォルダ 内の ファイル の更新日時や作成日時を検証して、最も新しいものを NewFile に代入するということになりますが、手っ取り早いのは、
oMsg.Send
した後で、添付ファイル を別の フォルダ(例えば「送信フォルダ」の下に「送信済み」フォルダ でも作っておいて、そこ)に移動するのが良いかと存じます。

--------------------------------------------------

> どこを直せばいいでしょうか?
 私は hotmail 環境がありませんので、試しようがありませんが、WEB でいろいろと検索してみますと、
・CreateObject("CDO.Message") は万能ではない。
・スパム防止策で Microsoft ができないようにしている。
というような意見が見受けられます。

 一方、
●[Template] Send SMTP email with Visual Basic Script (vbs) from Command Prompt using CDO([テンプレート] CDOを使用して、コマンドプロンプトからVisual Basicスクリプト(VBS)でSMTP電子メールを送信)
http://www.unix.com/windows-dos-issues-discussions/194939-template-send-smtp-email-visual-basic-script-vbs-command-prompt-using-cdo.html
には、live.com からでも メール が送れる スクリプト というような感じで書かれていますので、こちらをご参考になさってみてください。


 ただし、ウィキペディア(http://ja.wikipedia.org/wiki/Hotmail)には、
> Hotmail(ホットメール)は、MSNが提供していた(過去形)Webメールサービスである。
と書かれており、Microsoft としても仕様の変更を頻繁に行なっているようですので、何とも申せませんねぇ。。。

 簡単なところから回答いたします。

> なぜか送信受信ともに,まったくおなじメールが2通作成されてしまいます。
 これは、
oMsg.Configuration.Fields.Update
oMsg.Send
がダブっているからです。

 参考にされた サイト にも2回は書いてありません。

 コーディング をされる際に、誤ってコピペでもされたのでしょうが、メール送信スクリプト などを書かれるときには、細心の注意が必要です。

●CDO.Messageによるメール送信
http://serialty.blog117.fc2.com/blog-entry-10.html
のように、[With ステー...続きを読む

QSMTPサーバーをDOSを使って調べたいのですが・・・

SMTPサーバーをMS-DOSあるいは、コマンドプロンプトを
使って調べたいのですが、DOSでのコマンドはなんと打てばよろしいでしょうか?

お忙しいところ申し訳ないですが
わかる方おられましたらよろしくお願いします。

Aベストアンサー

違っていましたね、ごめんなさい。

それでは、nslookup でMX レコードを引いてください。

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/370nslookupmx/nslookupmx.html

QBASP21メール送信(SMTP-AUTH認証)ASP

ご存知の方、宜しくお願いします。

あるプロバイダのメールサーバへBASP21を使用してメールの送信を
行いたいのですが、以下のエラーMSGが表示されて
できません。
「エラー530 Sorry,Please use SMTP-AUTH instead」

outlook Expressだと問題なく送信できます。
outlook Expressの設定は
・送信メールサーバ
このサーバは認証が必要・・・にチェック
 受信メールサーバと同じ設定を使用する
SMTPポートは「587」

BASPでは、
MailServer="xxxx.co.jp:587
mailfrom="user1:pass1"
と設定しています。

詳しい方、宜しくお願いします。

Aベストアンサー

> 「エラー530 Sorry,Please use SMTP-AUTH instead」

 お使いのプロバイダではメールの送信に SMTP-AUTH (SMTP認証)が必要なようです。(OutlookExpressで「このサーバは認証が必要」にチェックが入っているのは、このSMTP認証を使うという意味です。)

 つまり、BASP21でメールを送信するときも、このSMTP認証を使うように指定してあげなければいけないのです。

下記参考URLのページに

> ●SMTP AUTH を使う 2000.07.20 New!

という項目がありますので、その辺を参考にしていろいろ実験してみてください。

参考URL:http://www.hi-ho.ne.jp/babaq/basp21.html

QVBA オブジェクトが空かどうか判定する

皆様のお知恵を拝借させてください。

エクセルVBAでオブジェクトを入れる変数を定義し、その変数にオブジェクト
が入っているかどうか検査したいのですがどうしたらいいでしょうか。

例えば---
Dim a As Workbook
If a <> nothing then ←この部分が分からない。このままだとエラー。
処理
End if
---------
環境
エクセル2003
WinXPsp1

Aベストアンサー

もし、aが空だったら
If a Is Nothing Then 

もし、aが空じゃなかったら
If Not a Is Nothing Then

QWindows7 zip圧縮・解凍のコマンド

同様の質問があったらすみません。

OS Windos7 では、標準でzipファイルの圧縮・解凍ができるようですが、
この操作をcmd.exeを使って行いたいと考えています。

質問(1)
そのようなコマンドはありますか?

質問(2)
コマンドがあれば、教えてください。
または、参照できるホームページ等教えていただけませんか?

よろしくお願いいたします。

Aベストアンサー

> コマンドがあれば、教えてください。

Win7はzipfldr.dllで処理しています。
RouteTheCall パラメータはfilename.zipのサブフォルダに
filenameフォルダを作成して解凍ファイルを格納します。
filenameにはzipファイル名を指定してください。

rundll32.exe zipfldr.dll,RouteTheCall filename.zip


人気Q&Aランキング