DOBON.NETプログラミング道掲示板

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■33537 / inTopicNo.1)  C#からのメール送信エラー
  
□投稿者/ mi 一般人(1回)-(2016/12/22(Thu) 12:22:01)
  • アイコン環境/言語:[C#2012pro .net4.5] 
    分類:[.NET] 

    C#からのメール送信で以下のエラーのため送信できません。
    トランザクションに失敗しました。 サーバーの応答:<相手アドレス@qaz.jp>: 
    Recipient address rejected: Access denied
    
    また添付した画像はoutlook2012でこちらでは正常に送信されます。
    またSSLで接続すると
    サーバーはセキュリティで保護された接続をサポートしていません。
    になります。
    ソースの元hhttp://nonsoft.la.coocan.jp/SoftSample/CS.NET/SampleSendMail.html
    宜しくお願いします。
    
    
    private void button2_Click(object sender, EventArgs e)
    {
        smail sm = new smail();
    
        if (chPopBefore.Checked)
        {
            // Pop Before Smtp認証のためPOPサーバに接続(コード省略)
            sm.PopBeforeSmtp(txtPopServer.Text, int.Parse(txtPopPort.Text), txtUser.Text, txtPass.Text);
    
        }
        // メール送信
        sm.SmtpSend(txtSmtpServer.Text, int.Parse(txtPort.Text), txtUser.Text, txtPass.Text, txtSenderMail.Text, txtRecipientMail.Text,
            txtSubject.Text, txtBody.Text, @"C:\work\test.txt", chkSSL.Checked);
    
        MessageBox.Show("送信しました");
    }
            
    
    public void SmtpSend(
        String serv, int port, String user, String pass,
        String fadr, String tadr, String subj, String body, String fils, bool chkSSL)
    {
        StringBuilder sb = new StringBuilder();
        sb.Length = 0;
    
        System.Net.Mail.MailMessage msg = null;
        try
        {
            msg = new System.Net.Mail.MailMessage();
    
            System.Text.Encoding enc = System.Text.Encoding.GetEncoding(50220);
    
            msg.Subject = subj;
            msg.SubjectEncoding = enc;
    
            msg.Body = body;
            msg.BodyEncoding = enc;
    
            msg.From = new System.Net.Mail.MailAddress(fadr);
    
            String[] tos = tadr.Split(',');
            for (int i = 0; i <= tos.Length - 1; i++)
            {
                if (tos[i] != "")
                {
                    msg.To.Add(new System.Net.Mail.MailAddress(tos[i]));
                }
            }
    
            System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient();
            sc.Host = serv;
            sc.Port = port;
    
            if (chkSSL)
            {
                sc.Credentials = new System.Net.NetworkCredential(user, pass);
                sc.EnableSsl = true;
            }
            sc.Send(msg);
        }
        catch (Exception ex)
        {
            sb.Append(ex.ToString());
        }
        finally
        {
            if (msg != null)
            {
                msg.Dispose();
            }
        }
    }
    
    
    ■メールアドレス
    test@abc.or.jp
    
    ■受信サーバー(POP3)
    pop.abc.or.jp
    
    ■送信サーバー(SMTP)
    smtp.abc.or.jp
    
    ■メールサーバー
    アカウント:test@abc.or.jp
    パスワード:abc123
    
    
    ■詳細設定
    <送信サーバー>
    1.送信サーバは(SMTP)は承認が必要にチェックを付ける
    2.以下の3項目のうち、1)にチェックを付ける
    1)受信メールアドレスサーバーと同じ設定を使用する←チェック
    2)次のアカウントとパスワードでログインする
    3)メールを送信する前に受信メールサーバーにログインする(Pop Before Smtp認証)
    
    3.詳細設定
    1)受信サーバーポート番号(POP3):110
    	暗号化された接続(SSL)が必要(チェックなし)
    2)送信サーバー(SMTP):587
    
    

マルチポストを報告
違反を報告
引用返信 削除キー/
■33538 / inTopicNo.2)  Re[1]: C#からのメール送信エラー
□投稿者/ Azulean 大御所(480回)-(2016/12/23(Fri) 14:07:58)
  • アイコンNo33537に返信(miさんの記事)
    > C#からのメール送信で以下のエラーのため送信できません。
    > トランザクションに失敗しました。 サーバーの応答:<相手アドレス@qaz.jp>:
    > Recipient address rejected: Access denied
    (略)
    > <送信サーバー>
    > 1.送信サーバは(SMTP)は承認が必要にチェックを付ける
    > 2.以下の3項目のうち、1)にチェックを付ける
    > 1)受信メールアドレスサーバーと同じ設定を使用する←チェック
    (略)

    SSL は使わないけれども、ユーザー認証は必要と言うことなので、 sc.Credentials の行を if 文の外に出したら変わるかもしれません。
違反を報告
引用返信 削除キー/
■33542 / inTopicNo.3)  Re[2]: C#からのメール送信エラー
□投稿者/ mi 一般人(2回)-(2016/12/24(Sat) 09:58:20)
  • アイコンAzuleanさん 返信ありがとうございます。
    sc.Credentials のみ実行させた場合 正常に送信できました。
    実装としては25ポート以外はsc.Credentialsを実行させて
    SSL指定の場合のみ sc.EnableSsl = true;を実装させるようにしました。
    1つの現場用なのでこれでいきます。ありがとうございました。

    No33538に返信(Azuleanさんの記事)
    > ■No33537に返信(miさんの記事)
    >>C#からのメール送信で以下のエラーのため送信できません。
    >>トランザクションに失敗しました。 サーバーの応答:<相手アドレス@qaz.jp>:
    >>Recipient address rejected: Access denied
    > (略)
    >><送信サーバー>
    >>1.送信サーバは(SMTP)は承認が必要にチェックを付ける
    >>2.以下の3項目のうち、1)にチェックを付ける
    >>1)受信メールアドレスサーバーと同じ設定を使用する←チェック
    > (略)
    >
    > SSL は使わないけれども、ユーザー認証は必要と言うことなので、 sc.Credentials の行を if 文の外に出したら変わるかもしれません。
解決済み!
違反を報告
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -