C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SMTPでメールを送信がしたい

[トピック内 24 記事 (1 - 20 表示)]  << 0 | 1 >>

■95089 / inTopicNo.1)  SMTPでメールを送信がしたい
  
□投稿者/ 工場プログラマー (7回)-(2020/06/23(Tue) 09:41:58)

分類:[VB.NET/VB2005 以降] 

VB2019を使っています。
取引先へSMTPでメールを送信するプログラムを作りたいのですが、うまくいきません。
Mailkitを使ってみたものの、うまく動作しないため諦めようと思っています。
何か別のパッケージや、ソースコードなどあったら教えてほしいです。
引用返信 編集キー/
■95090 / inTopicNo.2)  Re[1]: SMTPでメールを送信がしたい
□投稿者/ furu (55回)-(2020/06/23(Tue) 10:58:00)
No95089 (工場プログラマー さん) に返信
> Mailkitを使ってみたものの、うまく動作しないため諦めようと思っています。
他ならうまくいくわけとかあるんでしょうか?

以前、Mailkitで長い日本語の件名で不具合があって止めたことはありました。

> 何か別のパッケージや、ソースコードなどあったら教えてほしいです。
テストの意味で
System.Net.Mail.SmtpClientでやってみてはどうでしょうか?

ドキュメントに
now obsolete(現在使われていません)とか
don't recommend that you use for new development (新しい開発には使用しないことをお勧めします)とか
書かれていますが
使用できますし、ちゃんと動作します。

自己責任で使う分にはいいと思います。
引用返信 編集キー/
■95091 / inTopicNo.3)  Re[2]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (8回)-(2020/06/23(Tue) 11:37:52)
2020/06/23(Tue) 12:00:45 編集(投稿者)

No95090 (furu さん) に返信
>>Mailkitを使ってみたものの、うまく動作しないため諦めようと思っています。
> 他ならうまくいくわけとかあるんでしょうか?
今のところないですが以前質問した時に解決できなかったためMailkit以外にチャレンジしています。

>>何か別のパッケージや、ソースコードなどあったら教えてほしいです。
> テストの意味で
> System.Net.Mail.SmtpClientでやってみてはどうでしょうか?
> ドキュメントに
> now obsolete(現在使われていません)とか
> don't recommend that you use for new development (新しい開発には使用しないことをお勧めします)とか
> 書かれていますが
> 使用できますし、ちゃんと動作します。
ちょうど試験的に短いのでやってるんですけど例外が発生します。

Sub Main()
Dim senderMail As String = "***@***"
'宛先
Dim recipientMail As String = "***@***"
'件名
Dim subject As String = "こんにちは"
'本文
Dim body As String = "こんにちは。" + vbCrLf + vbCrLf + "それではまた。"

'SmtpClientオブジェクトを作成する
Dim sc As New System.Net.Mail.SmtpClient()
'SMTPサーバーを指定する
sc.Host = "smtp.alpha-prm.jp"
'ポート番号を指定する
sc.Port = 465
'タイムアウトする時間を設定する
sc.Timeout = 600000
'メールを送信する
sc.Send(senderMail, recipientMail, subject, body)
'後始末
sc.Dispose()
End Sub

こんな感じなんですけど、悪いところあったら教えてください。
引用返信 編集キー/
■95092 / inTopicNo.4)  Re[1]: SMTPでメールを送信がしたい
□投稿者/ kiku (176回)-(2020/06/23(Tue) 11:41:58)
No95089 (工場プログラマー さん) に返信
> VB2019を使っています。
> 取引先へSMTPでメールを送信するプログラムを作りたいのですが、うまくいきません。
> Mailkitを使ってみたものの、うまく動作しないため諦めようと思っています。
> 何か別のパッケージや、ソースコードなどあったら教えてほしいです。

Mailkitを使ってどのようなソースコードを作成し、
どのようなエラーになったのでしょうか?
それを開示すれば、返答が付きやすくなると思います。

また、
SMTPサーバの認証方式や、ポート番号など
接続に必要な情報も開示した方が良いと思います。
もし、googleのメールサーバであり、明らかにしても良い範囲で公開した方が良いです。
※パスワードとか公開しないように注意
引用返信 編集キー/
■95093 / inTopicNo.5)  Re[2]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (9回)-(2020/06/23(Tue) 11:53:36)
No95092 (kiku さん) に返信
> Mailkitを使ってどのようなソースコードを作成し、
> どのようなエラーになったのでしょうか?
> それを開示すれば、返答が付きやすくなると思います。
このようなエラーが発生しました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=95054
ソースコードはURLの中のWebサイトを参考にしています。
Webサイト→https://www.atmarkit.co.jp/ait/articles/1811/21/news023.html
必要なところしか変更してないのですが、エラーが起こりました。

> また、
> SMTPサーバの認証方式や、ポート番号など
> 接続に必要な情報も開示した方が良いと思います。
認証方法は暗号化されたパスワード認証、ポート番号は465です。

> もし、googleのメールサーバであり、明らかにしても良い範囲で公開した方が良いです。
> ※パスワードとか公開しないように注意
ご丁寧にありがとうございます。
引用返信 編集キー/
■95094 / inTopicNo.6)  Re[3]: SMTPでメールを送信がしたい
□投稿者/ KOZ (130回)-(2020/06/23(Tue) 13:26:31)
No95093 (工場プログラマー さん) に返信
> 認証方法は暗号化されたパスワード認証、ポート番号は465です。

SmtpClient は SMTP over SSL では通信できません。

サポートしているのは STARTTLS で、認証は平文で行われ、メール本文が SSL で暗号化されます。

「SmtpClient.EnableSsl プロパティ」
https://docs.microsoft.com/ja-jp/dotnet/api/system.net.mail.smtpclient.enablessl

というわけで、MailKit を使うしかないのですが、Visual Studio の

「ツール」→「オプション」→「デバッグ」→「マイコードのみを有効にする」

のチェックが外れていませんか?


引用返信 編集キー/
■95097 / inTopicNo.7)  Re[4]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (10回)-(2020/06/23(Tue) 14:51:54)
No95094 (KOZ さん) に返信
> ■No95093 (工場プログラマー さん) に返信
>>認証方法は暗号化されたパスワード認証、ポート番号は465です。
>
> SmtpClient は SMTP over SSL では通信できません。
> サポートしているのは STARTTLS で、認証は平文で行われ、メール本文が SSL で暗号化されます。
そうだったのですか、ありがとうございます。

> というわけで、MailKit を使うしかないのですが、Visual Studio の
> 「ツール」→「オプション」→「デバッグ」→「マイコードのみを有効にする」
> のチェックが外れていませんか?
外れていました!これが原因だったのですね、まったく気付きませんでした。
本当に助かりました、ありがとうございます。

SSLだとWebサイトのソースコードでは遅れないのでしょうか?
引用返信 編集キー/
■95098 / inTopicNo.8)  Re[5]: SMTPでメールを送信がしたい
□投稿者/ KOZ (131回)-(2020/06/23(Tue) 15:02:50)
No95097 (工場プログラマー さん) に返信
> SSLだとWebサイトのソースコードでは遅れないのでしょうか?

ConnectAsync メソッドの第3引数に SecureSocketOptions.SslOnConnect を指定します。
引用返信 編集キー/
■95100 / inTopicNo.9)  Re[6]: SMTPでメールを送信がしたい
□投稿者/ KOZ (132回)-(2020/06/23(Tue) 15:16:56)
あと、コールバックを設定しないとダメかも。

「NET TIPS SSL通信で信頼されない証明書を回避するには?[C#、VB、2.0、3.0、3.5]」
https://www.atmarkit.co.jp/fdotnet/dotnettips/867sslavoidverify/sslavoidverify.html

引用返信 編集キー/
■95101 / inTopicNo.10)  Re[6]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (11回)-(2020/06/23(Tue) 15:21:14)
2020/06/23(Tue) 16:02:01 編集(投稿者)

No95098 (KOZ さん) に返信
> ConnectAsync メソッドの第3引数に SecureSocketOptions.SslOnConnect を指定します。
Await client.ConnectAsync("smtp.alpha-prm.jp", 465, SecureSocketOptions.SslOnConnect)これであってますよね。
でもコードが終了してしまいます。これ以前に問題あるのでしょうか。

すいません上司に確認してみたところ送る側のポート番号は規定値の25でした。
引用返信 編集キー/
■95102 / inTopicNo.11)  Re[7]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (12回)-(2020/06/23(Tue) 15:33:07)
No95100 (KOZ さん) に返信
> あと、コールバックを設定しないとダメかも。
> 「NET TIPS SSL通信で信頼されない証明書を回避するには?[C#、VB、2.0、3.0、3.5]」
> https://www.atmarkit.co.jp/fdotnet/dotnettips/867sslavoidverify/sslavoidverify.html

この記事にあるfunctionを追加すればエラーを無視?することができるってことですか?
引用返信 編集キー/
■95103 / inTopicNo.12)  Re[8]: SMTPでメールを送信がしたい
□投稿者/ KOZ (133回)-(2020/06/23(Tue) 16:11:19)
No95102 (工場プログラマー さん) に返信

> すいません上司に確認してみたところ送る側のポート番号は規定値の25でした。

ということは暗号化なしか STARTTLS ?
SecureSocketOptions.StartTlsWhenAvailable を指定するといいかも。

> この記事にあるfunctionを追加すればエラーを無視?することができるってことですか?

「オレオレ証明書」の場合は必要です。
引用返信 編集キー/
■95104 / inTopicNo.13)  Re[9]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (13回)-(2020/06/23(Tue) 16:24:29)
No95103 (KOZ さん) に返信
> ということは暗号化なしか STARTTLS ?
> SecureSocketOptions.StartTlsWhenAvailable を指定するといいかも。
記載されてなかったので規定値だと思います。
第3引数に指定しましたがやはり終了してしまいました。
引用返信 編集キー/
■95105 / inTopicNo.14)  Re[7]: SMTPでメールを送信がしたい
□投稿者/ kiku (177回)-(2020/06/23(Tue) 16:56:14)
No95101 (工場プログラマー さん) に返信
> 2020/06/23(Tue) 16:02:01 編集(投稿者)
>
> ■No95098 (KOZ さん) に返信
>>ConnectAsync メソッドの第3引数に SecureSocketOptions.SslOnConnect を指定します。
> Await client.ConnectAsync("smtp.alpha-prm.jp", 465, SecureSocketOptions.SslOnConnect)これであってますよね。
> でもコードが終了してしまいます。これ以前に問題あるのでしょうか。
>
> すいません上司に確認してみたところ送る側のポート番号は規定値の25でした。

smtpサーバの名前から「アルファメール」というメールサービスを使っているようです。
下記にメールアプリへの設定方法のマニュアルがありました。
https://www.alpha-prm.jp/help_r/index.htm

上記を参照すると、暗号化ありSMTPoverSSLの機能と、暗号化なしサブミッションポートと、暗号化なしの
3種類が利用できるようです。
管理者は、上記ポート番号も変更できるようで、

通常、暗号化機能があるのに、わざわざ暗号化なしを利用することは
普通は考えられないような気がします。

システム管理者へきちんと聞いた方が良いと思います。
引用返信 編集キー/
■95106 / inTopicNo.15)  Re[8]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (14回)-(2020/06/23(Tue) 17:00:46)
No95105 (kiku さん) に返信
> smtpサーバの名前から「アルファメール」というメールサービスを使っているようです。
> 下記にメールアプリへの設定方法のマニュアルがありました。
> https://www.alpha-prm.jp/help_r/index.htm
>
> 上記を参照すると、暗号化ありSMTPoverSSLの機能と、暗号化なしサブミッションポートと、暗号化なしの
> 3種類が利用できるようです。
> 管理者は、上記ポート番号も変更できるようで、
>
> 通常、暗号化機能があるのに、わざわざ暗号化なしを利用することは
> 普通は考えられないような気がします。
>
> システム管理者へきちんと聞いた方が良いと思います。
なるほど、今日は時間がないので明日ゆっくり聞いてみます。
ありがとうございます。
引用返信 編集キー/
■95107 / inTopicNo.16)  Re[5]: SMTPでメールを送信がしたい
□投稿者/ KOZ (134回)-(2020/06/23(Tue) 17:40:39)
No95097 (工場プログラマー さん) に返信
>>サポートしているのは STARTTLS で、認証は平文で行われ、メール本文が SSL で暗号化されます。

ごめんなさい、ここ嘘を書いちゃったかも。
引用返信 編集キー/
■95110 / inTopicNo.17)  Re[6]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (15回)-(2020/06/24(Wed) 08:57:08)
No95107 (KOZ さん) に返信
> >>サポートしているのは STARTTLS で、認証は平文で行われ、メール本文が SSL で暗号化されます。
> ごめんなさい、ここ嘘を書いちゃったかも。
全然大丈夫です。まだうまく理解できてないので笑
引用返信 編集キー/
■95111 / inTopicNo.18)  Re[7]: SMTPでメールを送信がしたい
□投稿者/ 工場プログラマー (16回)-(2020/06/24(Wed) 09:29:35)
Await client.AuthenticateAsync(userName, password) は、
ポート番号465か587のときはこのソースコードが必要ってことですか?

引用返信 編集キー/
■95113 / inTopicNo.19)  Re[8]: SMTPでメールを送信がしたい
□投稿者/ KOZ (135回)-(2020/06/24(Wed) 10:07:16)
No95111 (工場プログラマー さん) に返信
> Await client.AuthenticateAsync(userName, password) は、
> ポート番号465か587のときはこのソースコードが必要ってことですか?

そこは認証が必要な場合です。
ポート番号の違いは主に暗号化の方法(に近い)という認識であれば良いかと思います。

引用返信 編集キー/
■95118 / inTopicNo.20)  Re[9]: SMTPでメールを送信がしたい
 
□投稿者/ 工場プログラマー (17回)-(2020/06/24(Wed) 12:51:51)
No95113 (KOZ さん) に返信
> そこは認証が必要な場合です。
> ポート番号の違いは主に暗号化の方法(に近い)という認識であれば良いかと思います。

なるほど、わかりやすい説明ありがとうございます。
引用返信 編集キー/

このトピックをツリーで一括表示

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -