ページ 11

c#プログラムについて

Posted: 2011年3月23日(水) 14:57
by 初心者
c#でメールの送信をするプログラムを作っています
今、僕はメールの送信をするプログラムを作っているのですが、実行してみてもメールが送れません。
どこがおかしいのか教えていただけませんか?
サーバは、free smtp serverを使っています

コード:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Text.RegularExpressions;

namespace MyOriginalMailer
{
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
Console.WriteLine("Don't input argument");
return;
}

String Sender, Recipient, Subject, Message;
Regex MailRegex = new Regex("(?<address>[^@]+@(yahoo.co.jp|gmail.com|softbank.ne.jp|docomo.ne.jp|ezweb.ne.jp))");
Console.Write("Sender mail address: ");
Sender = Console.ReadLine();
Console.Write("Recipient mail address: ");
Recipient = Console.ReadLine();
Console.Write("Subject: ");
Subject = Console.ReadLine();
Console.Write("Message: ");
Message = Console.ReadLine();

Match CheckSenderAddress = MailRegex.Match(Sender);
Match CheckReceiverAddress = MailRegex.Match(Recipient);
if (CheckSenderAddress.Success && CheckReceiverAddress.Success)
{
SmtpClient Client = new SmtpClient();
Client.Port = 25;
Client.Host = "localhost";
Client.EnableSsl = true;
Client.Timeout = 20000;

try
{
Client.Send(Sender, Recipient, Subject, Message);

Console.WriteLine("\nMessage sent");
Console.ReadLine();

}
catch (SmtpException)
{
Console.WriteLine("\nMessage sending failed");
Console.ReadLine();

}
finally
{
Client.Dispose();
}

}
else
{
Console.WriteLine("Sender mail address or recipient mail address is wrong");
Console.ReadLine();
}

}
}
} 

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:05
by mes
この質問を投稿したものです。
ルールをよく読んでいませんでした。
すいません。

環境はvisual c# 2010 expressです。
状況は、Sendメソッドを実行してもmailが送れないという状況です。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:12
by softya(ソフト屋)
素朴な疑問ですが、自分のPCでSMTPサーバーは起動されているのでしょうか?
コードを見る限るは、その前提のコードだと思いますが。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:18
by mes
free smtp server を起動した状態でプログラムを実行してやってます。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:26
by softya(ソフト屋)
まず確認して欲しいのは、一般メールソフトからfree smtp serverを経由してメールが送信できるか確認してみてください。
迷惑メール対策で、プロバイダがブロックしている可能性もあります。

それと、C#のコードを動かした時にfree smtp serverが動作した形跡はありますか?

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:34
by naohiro19

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:37
by softya(ソフト屋)
マルチポストはルール違反ですので、相互リンクするかあちらの質問を閉じてくださいね。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:48
by mes
free smtp serverにしてwindowsメールでメールを送信してみると0x800ccc19というerrorがでました

free smtp serverはちゃんと動作していると思います

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:49
by mes
マルチポストしてすいません。

yahooのほうは消しました

Re: c#プログラムについて

Posted: 2011年3月23日(水) 15:59
by softya(ソフト屋)
マルチポストに関しても一言書き添えて欲しかったですが、もしかして消しました?
mes さんが書きました:free smtp serverにしてwindowsメールでメールを送信してみると0x800ccc19というerrorがでました
free smtp serverはちゃんと動作していると思います
windowsメールでメールが送れないものを送信できるはずがないと思うのですが、何を根拠にちゃんと動作していると思ったのでしょう?
動いていも機能していないことはよく有りますよ。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 16:08
by mes
yahooのほうはもう消してしまいました・・。

smtp server がダメだということでしょうか?

Re: c#プログラムについて

Posted: 2011年3月23日(水) 16:18
by asd
mes さんが書きました:yahooのほうはもう消してしまいました・・。

smtp server がダメだということでしょうか?
少なくともWindowsメールでメール送信ができずにエラーになっているのに、
自作プログラムでメールが送信できるとは思えないわけで・・・。

エラーコード0x800ccc19はSMTPサーバからの応答がなくタイムアウトしましたというエラーのようです。
http://www.google.co.jp/search?hl=ja&lr ... C%E7%B4%A2

まずはお使いのSMTPサーバの設定を見直して、通常のメーラーでメールが送受信できるようにしましょう。
SMTPサーバのログを確認してどういうエラーになっているのかを確認するのも一つの手だと思いますよ。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 16:42
by mes
回答ありがとうございます。

いろいろとかくにんしてみます。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 16:47
by softya(ソフト屋)
テストが目的なら、このソフトが使えます(実際にはメールを送信しない仮想SMTPサーバです)。
「Diabolosの詳細情報 : Vector ソフトを探す!」
http://www.vector.co.jp/soft/win95/net/se307064.html
設定で、「認証が必要」と「POPbeforeSMTP」のチェックは外しています。

SSL認証に対応していないのでプログラムは
Client.EnableSsl = false;
にしてください。

Re: c#プログラムについて

Posted: 2011年3月23日(水) 17:40
by mes
amaxを使ってみると成功しました!!
ありがとうございました^^

Re: c#プログラムについて

Posted: 2011年3月24日(木) 10:35
by asd
mes さんが書きました:amaxを使ってみると成功しました!!
ありがとうございました^^
amaxってなんでしょうか?
SMTPサーバのことでしょうか?
結局何が問題で、どう解決したのか良く分かりません。

Re: c#プログラムについて

Posted: 2011年3月24日(木) 10:42
by softya(ソフト屋)
asd さんが書きました:
mes さんが書きました:amaxを使ってみると成功しました!!
ありがとうございました^^
amaxってなんでしょうか?
SMTPサーバのことでしょうか?
結局何が問題で、どう解決したのか良く分かりません。
AXMD_Diabolosと言う名前のソフトなので、私の書いたとおりにしたら動いたって事だと思います。
amax→AXMD?

Re: c#プログラムについて

Posted: 2011年3月24日(木) 10:51
by asd
softya(ソフト屋) さんが書きました:
asd さんが書きました:
mes さんが書きました:amaxを使ってみると成功しました!!
ありがとうございました^^
amaxってなんでしょうか?
SMTPサーバのことでしょうか?
結局何が問題で、どう解決したのか良く分かりません。
AXMD_Diabolosと言う名前のソフトなので、私の書いたとおりにしたら動いたって事だと思います。
amax→AXMD?
なるほど、そういうことでしたか。
補足情報ありがとうございました。