سؤال

وهذا هو بريدي إرسال الرمز. الأول هو الحصول على "هناك حرف غير صالح في رأس البريد" error.When لقد غيرت بلدي اسم الكمبيوتر بعض أقصر الاسم. وحلت المشكلة. ولكن في المجال بأكمله أسماء جهاز الكمبيوتر الخاص بي مثل "04500-ab04545.xxxdomain.gov.tr" لذلك أنا بحاجة إلى إيجاد حل آخر لهذه المشكلة.

وهكذا أنا غير قادر على إعطاء اسم كمبيوتر ثابت أثناء إرسال البريد من ج # رمز.

 MailMessage msg = new MailMessage();
 msg.Body = "axxxxxx";
 msg.To.Add(new MailAddress("xxxx@xxxx.domain"));
 msg.From = new MailAddress("xxxx@xxxx.domain","blab blalb");
 msg.Subject = "Subject xxx";
 SmtpClient server = new SmtpClient("xxxxxxxx",25);
 server.Credentials = new NetworkCredential("xxxxx", "xxxxxxx");
 SmtpClient server = new SmtpClient("mail.adalet.gov.tr",25);
 server.Credentials = new NetworkCredential("xxx", "xxx");
 server.Send(msg);
هل كانت مفيدة؟

المحلول

وأظن أن هذا قد يكون ترميز القضية ذات الصلة.

وحاول استخدام منشئ new MailAddress("xxxx@xxxx.domain","blab blalb", Encoding.Default).

وعدا ذلك محاولة Encoding.Unicode.

تحديث:

وبعد بعض الحفر، يتم طرح هذا الاستثناء من:

void System.Net.BufferBuilder.Append(string,int,int);

وهذا سيحدث إذا كان لديك أية أحرف فوق \ XFF في عنوان البريد الإلكتروني. هذا لا يفترض أن يحدث، كما يجب أن يتم تشفيرها اسم بالفعل، ولكن هناك أمر آخر يحدث مضحك أعتقد.

نصائح أخرى

ما هي رؤوس رسالة تحاول إرسال معها؟

ويمكنك التخلص بسهولة مع هذا المقتطف MSDN:

string[] keys = message.Headers.AllKeys;
        Console.WriteLine("Headers");
        foreach (string s in keys)
        {
            Console.WriteLine("{0}:", s);
            Console.WriteLine("    {0}", message.Headers[s]);

وتلقيت هذا الخطأ عندما كان هذا يتم تعديل ل"شبكة" --- تم حلها بعد ذلك خطأ. (ما أفهمه هو - أكان الخيار pickupdirectory المحدد، رأس -encoding UTF-8 (base64 في) كان يعطي خطأ)

ونأمل أن يساعد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top