私はC#から電子メールを送信するいくつかのプログラムを書いています。これはwinXPでもうまくいきますが、Win7で壊れています。私が理解しているのは、私が参照しているSMTPサーバが別のコンピュータ上にあっても、送信側のコンピュータにはSMTPサービスがインストールされている必要があります(そしてwin7はありません)。SMTP電子メール "サービス" C#プロジェクトに含めることができますか?
サードパーティ製のSMTPサーバーをインストールすることは可能ですが、プログラムを実行しているすべてのコンピュータでこれを行う必要があります。代わりに、私は同じ仕事をするためにコードから完全に使うことができる私のプロジェクトに一時的なSMTPサーバを含めたいと思います。誰かが私のプロジェクトに一時的なSMTPサーバーを含める方法について、ライブラリ(またはサンプルコード)を知っていますか?
は、ここに私のコードです:
public static void sendEmail(String[] recipients, String sender, String subject, String body, String[] attachments)
{
MailMessage message;
try
{
message = new MailMessage(sender, recipients[0]);
}
catch (Exception)
{
return;
}
foreach (String s in recipients)
{
if (!message.To.Contains(new MailAddress(s)))
message.To.Add(s);
}
message.From = new MailAddress(sender);
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("PRIVATE.PRIVATE.PRIVATE", 25);
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = true;
if (attachments.Length > 0)
{
foreach (String a in attachments)
{
message.Attachments.Add(new Attachment(a));
}
}
try
{
smtp.SendAsync(message, null);
- なぜ、これはXPで動作し、Win7では動作しないのですか? – MAW74656
あなたのスクリプトを教えてください。たぶんあなたは何とかローカルSMTPサービスを使用しています。別の理由は、ローカルプログラムが電子メールを送信することを許可しないファイアウォールかもしれません。 – Olaf
- 上記のコードは、XPでは動作しますが、7では動作しません。 – MAW74656