0

イントラネットでメールを送信しようとしています。値がテキストボックスから受け入れられ、それぞれのフィールドに渡されるページを設計しました。

これは私のフロント エンド コードです (<tr><td>タグは無視してください):

<td>
    FROM
</td>
<td>
<asp:TextBox ID="txtFrom" runat="server" CssClass="Textbox1" Width="414px"></asp:TextBox>
</td>
<td>
    SENDER MAIL
</td>
<td>
<asp:TextBox ID="txtMailAdd" runat="server" CssClass="Textbox1" Width="414px"></asp:TextBox>
<td>
    SMTP IP
</td>
<td>
<asp:TextBox ID="txtSMTP" runat="server" CssClass="Textbox1" Width="414px"></asp:TextBox>
<td>
   RECEIVER
</td>
<td>
<asp:TextBox ID="txtReceiver" runat="server" CssClass="Textbox1" Width="414px"></asp:TextBox>
<td>
    TO MAIL
</td>
<td>
<asp:TextBox ID="txtTo" runat="server" CssClass="Textbox1" Width="414px"></asp:TextBox>

これは私のバックエンドコードです:

protected void btnSMail_Click(object sender, EventArgs e)
{
    string smtpadd = txtSMTP.Text;

    try
    {
        if (smtpadd != "" && smtpadd != null)
        {
            MailMessage mm = new MailMessage();
            SmtpClient sc = new SmtpClient(txtSMTP.Text);

            if (!fupAttach.HasFile)
            {
                FileStream fs = new FileStream("D:\\DEV\\New.xml", FileMode.Open, FileAccess.Read);
                Attachment attch = new Attachment(fs, "License Generation in XML", MediaTypeNames.Application.Octet);
                mm.Attachments.Add(attch);
            }

            //sc.Host = "10.8.4.118";
            sc.Port = 25;
            sc.EnableSsl = false; // runtime encrypt the SMTP communications using SSL

            mm.To.Add(new MailAddress(txtTo.Text, txtReceiver.Text));
            mm.From = new MailAddress(txtMailAdd.Text, txtFrom.Text);
            mm.Subject = txtSub.Text;
            //mm.To= new MailAddress(txtTo.Text);
            mm.Body = txtBody.Text;

            if (fupAttach.HasFile)
            {
                String FileName = fupAttach.PostedFile.FileName;
                Attachment mailAttachment = new Attachment(FileName, MediaTypeNames.Application.Octet);
                mm.Attachments.Add(mailAttachment); 
            }

            lblMailFail.Text = "Mail Successfully Sent";

            sc.Send(mm);
        }

        else
        {
            lblMailFail.Text = "Enter an SMTP IP";
        }
    }

テキストボックスに次の値を入力しようとすると

Sender Mail: xyz@sdc.ba.co.in
SMTP ID: 10.8.4.2
Receiver Mail: xyz@sdc.ba.co.in

エラーが発生する

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.7.1 Unable to relay for xyz@sdc.ba.co.in at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) at System.Net.Mail.SmtpClient.Send(MailMessage message) at Lic_Gen.btnSMail_Click(Object sender, EventArgs e)

誰かが私がどこで間違っているのか教えてもらえますか?

4

2 に答える 2

2

これは SMTP 構成の問題であり、C# コードとは関係ありません。

于 2012-12-19T10:22:31.733 に答える
2

メール サーバーは、あなた (またはあなたの IP) が指定された電子メール アドレスにメールを送信することを許可していません。ここでメールサーバーの詳細なテストを行うことができます。

Eudora の Web サイトでメール リレーの詳細を確認できます(ほとんどの情報はすべてのメール サーバーに適用されます)。

于 2012-12-19T10:22:55.700 に答える