🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

15538閲覧

powershellからメールを送信できない

negitoro

総合スコア14

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2019/09/18 17:29

実現したいこと・問題

コマンドでメールを送信したい思っております。
ネットで調べつつpowershellでソースを書いたのですが、エラーが発生し、メールを送信することができません。
どのようにすればメールが送信できるか、ご教示いただけませんでしょうか。

エラーの内容

"1" 個の引数を指定して "Send" を呼び出し中に例外が発生しました: "メールを送信できませんでした。"
発生場所 C:\work\sendMail.ps1:26 文字:1

  • $SMTPClient.Send($MailMassage)
  • + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : SmtpException

試したこと・確認したこと

  • ファイアウォールに原因があるのかと思い、ファイアウォールの無効化を行いましたが、同じエラーが発生しました。
  • メーラーで送信可能であるか確認しようと思い、thunderbirdで同じように送信メールサーバの設定を行ってメール送信したところ、

問題なく送信できました。

該当のソースコード

powershell

1# メールの設定 2$From="address@yahoo.co.jp" 3$Subject="テストメール" 4$body="テストメールを送信します。" 5$To="address@yahoo.co.jp" 6 7# 送信メールサーバの設定 8$SMTPServer="smtp.mail.yahoo.co.jp" 9$Port="465" 10$User="address@yahoo.co.jp" 11$Password="password" 12$SMTPClient=New-Object Net.Mail.SmtpClient($SMTPServer,$Port) 13$SMTPClient.EnableSsl=$true 14$SMTPClient.Credentials=New-Object Net.NetworkCredential($User,$Password) 15 16# メールメッセージの作成 17$MailMassage=New-Object Net.Mail.MailMessage($From,$To,$Subject,$body) 18# メールメッセージを送信 19$SMTPClient.Send($MailMassage)

補足情報

powershellのバージョンは5.1.17763.592です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

送信メールのportは587でいけますよ

投稿2019/09/18 18:31

nullpot

総合スコア153

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nullpot

2019/09/18 21:15

https://docs.microsoft.com/ja-jp/dotnet/api/system.net.mail.smtpclient.enablessl?redirectedfrom=MSDN&view=netframework-4.8#System_Net_Mail_SmtpClient_EnableSsl > 代替の接続方法では、プロトコルコマンドが送信される前に、SSL セッションが事前に確立されます。 この接続方法は、SMTP/SSL、SMTP over SSL、または SMTPS とも呼ばれ、既定ではポート465を使用します。 SSL を使用したこの代替接続方法は、現在サポートされていません。
negitoro

2019/09/19 17:16

Port=587 ,EnableSsl=falseにすることで送信することができました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問