2

Google Mail を使用して電子メールを送信する従来の ASP (はい、ご容赦ください) でアプリケーションを作成しています。私は次のようにうまく動作しています:

Dim ObjSendMail
Set ObjSendMail = CreateObject("CDO.Message") 

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = SendUsername
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SendPassword
ObjSendMail.Configuration.Fields.Update

ObjSendMail.To = "x@x.x"
ObjSendMail.From = "x@x.x"
ObjSendMail.Subject = "subject here..."
ObjSendMail.HTMLBody = "body here..."

'ObjSendMail.Fields("urn:schemas:mailheader:disposition-notification-to") = SendUsername
'ObjSendMail.Fields("urn:schemas:mailheader:return-receipt-to") = SendUsername
'ObjSendMail.Fields.Update
'ObjSendMail.DSNOptions = 14
ObjSendMail.Send
Set ObjSendMail = Nothing

次の行のコメントを外すと:

'ObjSendMail.Fields("urn:schemas:mailheader:disposition-notification-to") = SendUsername
'ObjSendMail.Fields("urn:schemas:mailheader:return-receipt-to") = SendUsername
'ObjSendMail.Fields.Update
'ObjSendMail.DSNOptions = 14

メールが送信できません。エラーはありません。電子メールも配信領収書もありません。私はこれを機能させる方法を一生理解できません。「SendUsername」は有効な電子メール アドレスです。どんな助けでも大歓迎です。

4

2 に答える 2

1

Gmail がこれを行うことを望んでいないため、おそらく機能していません。この種のものは、しばしばスパマーによって悪用されます.

于 2010-09-28T15:25:39.680 に答える
1

これがアクティブになってから数年が経ちましたが、解決策を見つけたので、他の誰かがこの問題を抱えている場合に備えて投稿します.

gmail や共有ホスティングなどのサードパーティの SMTP サーバーを使用していて、そのサーバー構成にアクセスできない場合は、実際にできることは何もありません。メール サーバーは、DSNOptions が設定されたメールを中継しません。これは間違いなく、スパムや悪用を減らすためです。

ただし、WHM にアクセスできる場合、または設定を変更する会社でホストされている場合 (または独自の SMTP サーバーを実行している場合) は、DSN サポートをアドバタイズするホストを設定できる場合があります。現在、Exim/WHM の経験しかないため、この設定は別のメール サーバー プラットフォームでは利用できない場合があります。

Exim 構成マネージャーでのこのスクリーンショット

これにより、配信成功の通知を受け取ることができるようになり、成功したメールの開封確認も許可されるはずです。成功以外の DSN オプションはサポートされなくなったことに注意してください。これは、遅延または配信不能な電子メールがいずれにせよ送信者に戻ってくるためです。この時点では、DSNOptions = 14 (すべて) または DSNOptions = 4 (成功) のみが何かを行うようです。免責事項: これがあなたのメール システムを標的とするスパマーにどのような悪影響を与えるかはわかりません。自己責任で使用してください。

また、もう 1 つのちょっとしたトリックは、成功したメールには関心がなく、送信者アドレスとは異なるアドレスで配信不能メールを警告したいということです。ここでは、DSNOptions と配置構成を取り除き、次のように目的の電子メール アドレスを objCDO.Sender に入れるだけです。

objCDO.Sender = "returnedmail@domain.com"

成功した電子メールは、構成で事前にプログラムされたアドレス (objCDO.From)から送信されますが、配信不能な電子メールは objCDO.Sender アドレスに返されます。

CDO メールで従来の ASP をまだ使用していて、なぜこれが機能しなくなったのか疑問に思っている人にとって、これが助けになることを願っています。

于 2019-10-05T05:29:15.523 に答える