6

これは私が書いたコードです:

        MailMessage mail = new MailMessage("test@gmail.com", "me@myurl.com");

        mail.Subject = "This is a test!!";
        mail.Body = "testing...";

        SmtpPermission connectAccess = new SmtpPermission(SmtpAccess.Connect);
        System.Console.WriteLine("Access?  " + connectAccess.Access);

        SmtpClient client = new SmtpClient("mail.myurl.com", 2525);
        client.Send(mail);

動いていない。「client.Send(mail)」の行で、「メールボックスを利用できません。サーバーの応答は (MYLOCALCOMPUTERNAME) [MY LOCAL IP]:3045 は現在、中継が許可されていません。」という例外が発生します。

connectAccess.Access は "Connect" を返します (これが必要かどうかはわかりません... トラブルシューティング プロセスを開始するために追加しました)。

これは、ローカル マシンを何らかの方法で構成する必要があるということですか? アプリを他の人のマシンにデプロイする場合はどうなりますか? そこにローカル構成が必要ですか?アプリケーションから「フィードバックを送信」タイプのリンクを作成しようとしています。

(注:私の実際のアプリケーションでは、「to」と「from」の両方で実際のメールアドレスを使用しています。私のsmtpは、実際には私のURL / Webサイトをホストする場所の私のsmtpアドレスです)

ありがとう!

-アディーナ

4

4 に答える 4

7

@ マイケル: リンクをありがとう。とても役に立ちます。

私は自分の問題を理解したと思います。「クライアント」オブジェクトを作成した後、ログイン資格情報を追加する必要がありました。次の行を追加しました。

 client.Credentials = new System.Net.NetworkCredential("myloginat+myurl.com", "mypassword");

(申し訳ありませんが、ウェブ上で回答を検索し、2 時間マニュアルを調べた後、最終的に分解して質問を投稿し、5 分後にそれを理解するという習慣があります。:)質問を下すと、何よりも役立ちます)

だから、それは働いている...私はそれがどのように、そしてなぜそれが働いているかについてすべてを理解しているとは主張しないので、他の人が使用するために私のプログラムを与えるときに、いくつかの問題に遭遇することを期待しています. つまり、インターネット接続のあるプログラムを使用しているすべての人が、このサーバーへの smtp 接続を開くことができますか? それに対する答えはわかりません... 私は待って、様子を見て、もう少し学ばなければなりません。

ありがとう!:)

-アディーナ

于 2008-12-14T16:26:14.237 に答える
3

宛先アドレスは、smtp サーバーと同じホストにありますか? そうでない場合、これは中継エラーを説明します。

使用する SMTP サーバーは、メール メッセージの最終的な宛先であるか、メール交換の最初のホップである必要があります。たとえば、Gmail アドレスから Yahoo アドレスにメールを送信する場合、メッセージを最初に表示するメール サーバーは、Gmail サーバーまたは Yahoo サーバーである必要があります。間にあるサーバーは、リレーが無効になっているため (スパムなどを削減するため)、メッセージを拒否します。

それらが同じホストである場合、他の方法で直接メールを送信できますか?

telnet 経由でこのテストを試して、smtp サーバーが適切に動作しているかどうかを確認してください: http://www.messagingtalk.org/content/470.html

于 2008-12-14T15:12:11.453 に答える
0

ファイアウォールを確認してください。2525ポストは開いていますか?

于 2009-05-26T10:56:24.687 に答える
0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;

namespace SendMail
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                SmtpClient client = new SmtpClient("smtp.gmail.com", 25);
                MailMessage msg = new MailMessage();

                NetworkCredential cred = new NetworkCredential("x@gmail.com", "password");
                msg.From = new MailAddress("x@gmail.com");
                msg.To.Add("y@gmail.com");
                msg.Subject = "A subject";
                msg.Body = "Hello,Raffi";

                client.Credentials = cred;
                client.EnableSsl = true;
                label1.Text = "Mail Sended Succesfully";
                client.Send(msg);


            }
            catch
            {
                label1.Text = "Error";
            }
        }



    }
}
于 2013-06-05T11:42:18.520 に答える