Problema ao enviar o email por System.Net.Mail C #
-
03-07-2019 - |
Pergunta
Este é meu e-mail enviando código. Eu estava ficando "Há carácter inválido no Mail Header" error.When mudei de nome do computador um nome mais curto. O problema resolvido. Mas em meu domínio inteiro nomes de computador como "04500-ab04545.xxxdomain.gov.tr" Então eu preciso encontrar outra solução para este problema.
Então, eu não posso dar um nome de computador estático ao enviar o email a partir do código C #.
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);
Solução
Eu suspeito que isso pode ser um problema relacionado codificação.
Tente usar o construtor new MailAddress("xxxx@xxxx.domain","blab blalb", Encoding.Default)
.
Else tentativa Encoding.Unicode
.
Update:
Depois de algumas escavações, essa exceção é lançada a partir de:
void System.Net.BufferBuilder.Append(string,int,int);
Isso acontecerá se você tiver quaisquer caracteres acima \ xff no endereço de e-mail. Esta não é suposto acontecer, como o nome já deve estar codificado, mas alguma coisa está acontecendo eu acho engraçado.
Outras dicas
O que cabeçalhos são a mensagem tentando enviar com?
Você pode facilmente despejar com este MSDN trecho:
string[] keys = message.Headers.AllKeys;
Console.WriteLine("Headers");
foreach (string s in keys)
{
Console.WriteLine("{0}:", s);
Console.WriteLine(" {0}", message.Headers[s]);
Recebi este erro quando se este é modificado para "rede" --- então erro foi resolvido. (O meu entendimento é - Incase de opção PickupDirectory especificado, o cabeçalho -encoding utf-8 (base64) estava dando erro)
Hope isso ajuda