実現したいこと
http(asp.net)でメールを送信したい。
前提
asp.net WebForm(Vb.net)でメール送信の画面を作成しています。
社内のWebページでメールを送信する用のページです。
発生している問題・エラーメッセージ
VisualStudio(2010)のデバッグで正しくメールが送信されるのですが、
IIS(別端末)で同じWebページからメールの送信をすると
「メールの送信中にエラーが発生しました: SMTP サーバーにセキュリティで保護された接続が必要であるか、またはクライアントが認証されていません。 サーバーの応答:5.7.0 Authentication required」
というエラーになってしまいます。
VisualStudioでうまくいってるんで、Smptサーバの設定等はあっているとは思うのですが。。。
該当のソースコード
asp.net
1 Public Sub MailSetting() 2 With EMailData 3 'タイトル 4 .Subject = "Title" 5 6 '本文 7 .Body = "Honbun" 8 9 '添付ファイル 10 .attachmentPath = "\\Nas\PDF\ZZZZ.PDF" 11 12 'メール送信先 13 .Recipient = "xxxxx@gmail.com" 14 15 End With 16 17 _EMailFromAddr = "xxxxx@yyyyy.zzzz.org" 18 _EMailFromName = "送信専用" 19 _EMailPassWord = "ABCDEFG1234" 20 _SmtpSv = "yyyyy.zzzz.org" 21 _SmtpSvPort = 587 22 End Sub 23 Public Sub EmailSend2(ByVal EMailData As SendEMailData, ByRef PG As Page) 24 25 With EMailData 26 ' 送信元メールアドレス 27 Dim fromAddress As New MailAddress(_EMailFromAddr, _EMailFromName) 28 29 ' 送信先メールアドレス 30 Dim toAddress As New MailAddress(.Recipient, "") 31 32 ' メールオブジェクトの作成 33 Dim mail As New MailMessage(fromAddress, toAddress) 34 mail.Subject = .Subject 35 mail.Body = .Body 36 37 ' メールに添付ファイルを追加 38 Dim attachment As New Attachment(.attachmentPath) ' ファイルのパスを指定 39 mail.Attachments.Add(attachment) 40 41 ' SMTPクライアントの設定 42 Dim smtpClient As New SmtpClient(_SmtpSv, _SmtpSvPort) 43 smtpClient.EnableSsl = True ' SSLを有効にする 44 smtpClient.UseDefaultCredentials = False ' デフォルトの認証情報を使用しない 45 46 ' SMTP認証情報を設定(必要な場合) 47 smtpClient.Credentials = New NetworkCredential(_EMailFromAddr, _EMailPassWord) 48 49 Try 50 ' メールを送信 51 smtpClient.Send(mail) 52 53 Catch ex As Exception 54 ' 送信エラー時の処理を追加 55 PG.Response.Write("メールの送信中にエラーが発生しました。もう一度お試しください。: " & ex.Message) 56 Finally 57 ' メールオブジェクトを解放 58 mail.Dispose() 59 End Try 60 61 End With 62 63 End Sub
試したこと
TLSに対応していないメールアドレスではうまくいきました。
その場合は「smtpClient.EnableSsl = True ' SSLを有効にする」行の削除しました。
補足情報(FW/ツールのバージョンなど)
asp.netのバージョン 4.8.9181.0
回答1件
あなたの回答
tips
プレビュー