0

asp.netでメールを送信するためにこのコードを使用しています:

System.Net.Mail の使用

public string SendEmail()
{
    SmtpClient obj = new SmtpClient();
    MailMessage Mailmsg = new MailMessage();
    Mailmsg.To.Clear();

    Recievers = new MailAddressCollection();
    Recievers.Add(txtToAddress.Text);
    SenderName = "Info";
    SenderEmail = txtFromAddress.Text;
    Subject = "subj";
    Body = "body";
    UseBcc = false;

    if (UseBcc)
    {
        foreach (MailAddress RecieverItem in Recievers)
        {
            Mailmsg.Bcc.Add(RecieverItem);
        }
    }
    else
    {
        foreach (MailAddress RecieverItem in Recievers)
        {
            Mailmsg.To.Add(RecieverItem);
        }
    }

    Mailmsg.From = new MailAddress(SenderEmail, SenderName, System.Text.Encoding.UTF8);
    Mailmsg.Subject = Subject;
    Mailmsg.SubjectEncoding = Encoding.UTF8;
    Mailmsg.BodyEncoding = System.Text.Encoding.UTF8;
    Mailmsg.IsBodyHtml = false;

    obj.Host = mail.domain.com;

    System.Net.NetworkCredential BasicAuthenticationInfo = new System.Net.NetworkCredential("info@domain.com", "password");

    obj.UseDefaultCredentials = false;
    obj.Credentials = BasicAuthenticationInfo;

    Mailmsg.Body = Body;
    Mailmsg.IsBodyHtml = true;
    try
    {
        obj.Send(Mailmsg);
        return "sent";
    }
    catch (Exception ex)
    {
        return ex.ToString();
    }
}

ドメインで定義されている受信者 ( mail@domain.comなど) に電子メールを正しく送信しますが、他のメール サーバー ( mail@yahoo.comなど) に電子メールを送信できません。

私のコードで何が間違っていますか?

(SmtpClient プロパティに関連している可能性がありますか? smtpclient.host をmail.mydomain.comに設定 し、ドメインで定義されているいずれかのメール アカウントのユーザー名とパスワードを使用しています)

ありがとう

4

1 に答える 1

5

Exchange サーバーに関連するものである必要があります。その代わりに、外の世界と通信する方法を定義するトランスポート ルールがあります。

http://www.msexchange.org/articles_tutorials/exchange-server-2007/management-administration/restricting-users-send-receive-external-messages-exchange-server-2007.html

外部ネットワークに電子メールを送信しているときに何らかの例外が発生しているに違いありません

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.1.1 User unknown
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)

これがエラーである場合、これは、Exchange が外部ネットワークに直接電子メールを送信することをサポートしていないことを意味します。私は MS Exchange の専門家ではありませんが、外部ネットワークに電子メールを送信できないネットワークで構成された Exchange サーバーを使用していますが、連絡先への電子メール転送を有効にしています。

これはあなたを助けることができるかもしれません。http://www.petri.co.il/configuring-exchange-2007-send-connectors.htm

また、この問題をhttps://serverfault.com/で共有することをお勧めします

于 2012-05-17T05:02:55.367 に答える