سؤال

أحاول استخدام System.Net.Mail.MailMessage الفصل في C# لإنشاء بريد إلكتروني يتم إرساله إلى قائمة عناوين البريد الإلكتروني كل ذلك عبر BCC. لا أريد تضمين أ TO العنوان ، ولكن يبدو أنه يجب عليّ أن أحصل على استثناء إذا استخدمت سلسلة فارغة لـ TO العنوان في MailMessage البناء. ينص الخطأ:

ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses

من المؤكد أنه من الممكن إرسال بريد إلكتروني باستخدام فقط BCC لأن هذا ليس قيودا على SMTP.

هل هناك طريقة للتغلب على ذلك؟

هل كانت مفيدة؟

المحلول

أعتقد أنه إذا قمت بتعليق الكل emailMessage.To.Add(sendTo); الخط ، سوف يرسل البريد الإلكتروني مع To حقل فارغ.

نصائح أخرى

افعل نفس الشيء الذي تفعله من أجل انفجارات البريد الداخلية حيث لا تريد أن يرد الناس جميعًا طوال الوقت.

ارسلها إلى نفسك (أو حساب وهمية) ، ثم أضف قائمة BCC الخاصة بك.

عليك أن تضم أ. فقط أرسله إلى عنوان بريد إلكتروني "غير مرغوب فيه" لا تمانع في الحصول على البريد.

حتى أنه لا يحتاج إلى أن يكون عنوان بريد إلكتروني حقيقي ، فأنا أستخدم عادة Mailer@CompanyName.com إلى عن على TO, ، و NoReply@CompanyName إلى عن على FROM.

فقط لا تتصل بمطاردة الإضافات على الممتلك.

يجب أن يكون لديك لمعالجة. لقد كان الأمر بهذه الطريقة لأن SendMail الأصلي A SENDICES في الثمانينيات وجميع مراسلي SMTP ، كما أعرف ، لديهم نفس المتطلبات. يمكنك فقط استخدام عنوان وهمية ل.

يمكنك استخدام عنوان مزيف مؤقت ثم إزالته بعد:

MailMessage msg = new MailMessage(from, "fake@example.com");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
     msg.Bcc.Add(email);
}

أعتقد أنك كنت تحاول أن تفعل شيئًا مثل:

var msg = new MailMessage("no-reply@notreal.com", "");

لهذا السبب كنت ترى رسالة الخطأ.

بدلاً من ذلك ، جرب شيئًا كهذا:

MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("no-reply@notreal.com");
//msg.To.Add("target@notreal.com"); <--not needed
msg.Bcc.Add("BCCtarget@notreal.com");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top