5

クライアント組織の電子メール サーバーを使用して、Web アプリケーションから電子メールを送信しようとしています。以下は私が使用しているコードです。

MailMessage MyMailMessage = new MailMessage();
MyMailMessage.Subject = "Email testing";
MyMailMessage.From = new MailAddress("name@mydomain.com", "My name");
MyMailMessage.To.Add(new MailAddress(strEmail, "Applicant"));

SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.EnableSsl = true;
mySmtpClient.Send(Accepted);

Web.config ファイル:

<mailSettings>
  <smtp deliveryMethod="Network" from=" name@mydomain.com">
    <network host="smtps.mydomain.com" port="465" enableSsl="true" defaultCredentials="true"
    userName="myName" password="myPassword" />
  </smtp>
</mailSettings>

gmail smtp の詳細またはローカル組織の smtp の詳細を使用すると、完全に正常に動作します。何らかの理由で、それは機能しておらず、エラーもスローされていません。

デバッグを試み、「タイムアウト」という例外を確認しました。

他に何を確認すればよいかわかりません。誰かが解決策を提案してください。

注: ポート 465 をブロックしているファイアウォールがないことも確認しました。

ありがとうございました。

敬具、

シュッド

4

5 に答える 5

0

ご提案いただきありがとうございます。ポート番号を 465 から 25 に変更するだけで済みました。

于 2013-10-04T12:58:07.853 に答える
0
<system.net>
    <mailSettings>
      <smtp from="emialid.com">
        <network host="domain.com" port="25" userName="emialid.com" password="******" defaultCredentials="false"/>
      </smtp>
    </mailSettings>
    </system.net>



public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment)

    {
        try
        {
            SmtpClient smtpClient = new SmtpClient();

            MailMessage message = new MailMessage();

            MailAddress fromAddress;

            fromAddress = new MailAddress(FromMail);

            smtpClient.Host = MailServer;
            smtpClient.Port = 25;

            System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword);
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = SMTPUserInfo;

            message.From = fromAddress;

            message.To.Add(new MailAddress(To, DisplayName));
            if (CC != "")
                message.CC.Add(new MailAddress(CC, DisplayName));
            if (BCC != "")
                message.Bcc.Add(new MailAddress(BCC, DisplayName));

            message.Subject = Subject;

            message.IsBodyHtml = true;
            message.Body = "Your Password is : " + EmailMessage;

            if (Attachment != "")
                message.Attachments.Add(new Attachment(Attachment));

            message.Priority = MailPriority.High;

            smtpClient.Send(message);
            return "SendEmail";
        }
        catch (Exception ex)
        {
            return "Email :" + ex;
        }

    }
}

}

于 2013-10-03T11:38:49.967 に答える
0

これを試してください:

var sysLogin="yourlogin@gmail.com";
var sysPass="y0urP@ss";
var sysAddress = new MailAddress(sysLogin, "Message from me!");

var receiverAddress = new MailAddress("mike@hotmail.com");

var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",   //gmail example
            Port = 587,
            EnableSsl = false,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(sysLogin, sysPass)
        };

        using (var message = new MailMessage(sysAddress, receiverAddress) { Subject = "Some subject", Body = "Some text" })
        {
            smtp.Send(message);
        }
于 2013-10-03T11:23:56.960 に答える
0

クライアント SMTP サーバーに有効な SSL 証明書がインストールされており、ポート 465 で接続を受け入れることができることを確認しましたか?

可能であれば、WireShark などのパケット スニファを実行して、パケット フローをチェックします。

SysIntererals TcpView ツールは軽量のユーティリティで、パケットの状態も確認できます。

于 2013-10-03T11:24:28.843 に答える