Jump to content

Enviar email


gadNY
 Share

Recommended Posts

Bom dia, eu fiz um código para enviar emails, e ele funciona, mas quando uso o programa em rede ele não funciona, podem dizer o porque ? O código é o seguinte:

try
            {
                passenviar pass = new passenviar();
                ocorrencia oco = new ocorrencia();
                System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
                message.To.Add("xxxxxxx@hotmail.com");
                message.To.Add(combogestor.Text);
                message.From = new System.Net.Mail.MailAddress("xxxxxxxxxxxxxx@gmail.com");
                message.Subject = xxx;
                message.Body = xxx;
                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.EnableSsl = true;
                smtp.Credentials = new System.Net.NetworkCredential("xxxx@gmail.com", @class.settings.passmail);
                smtp.Send(message);
                MessageBox.Show("Email enviado com sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                @class.settings.envioemail = "Sim";
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                MessageBox.Show("Não foi possível enviar o email, verifique se todos os campos estão correctos.");
            }
            finally
            {
            }
Link to comment
Share on other sites

Não sei porque no outro pc está apenas um executável, apenas dá a mensagem de erro que eu criei, no meu, mesmo com o executável funciona na perfeição, logo não será do meu software mas sim de alguma coisa do SO, o meu é windows7 e do outro pc é o XP.

Link to comment
Share on other sites

Sim, pode ser excepção de segurança. Mas para confirmar isso, era importante tentares saber exactamente que erro dá.

Podes fazer

catch (Exception ex)
            {
                MessageBox.Show("Não foi possível enviar o email, verifique se todos os campos estão correctos.");
                Clipboard.SetText(ex.Message); // vai copiar o erro para o clipboard
            }

e colar aqui o erro.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Isso foi para a área de transferência, era para colares aqui o resultado. Só aparece quando dá o erro. Mas se preferires, coloca o ex.Message numa MessageBox, e tira uma printscreen. O importante é ver o erro que lança essa excepção.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Acho que não depende do Outlook, porque apenas usas métodos da própria framework. Isso é alguma coisa gerada pelo cliente, que o servidor não consegue interpretar, mas sendo o mesmo executável...

Em ambos os sistemas operativos, a versão da .net Framework é igual?

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

No meu(onde funciona) tenho o 4.0, o outro(onde não funciona) tem o 2.0 SP2, 3.0 SP2 e 3.5 SP1, mas no c# tem o seguinte(acho que é o NET.Framework que deve ser utilizado não?):

http://img293.imageshack.us/img293/47/59356476.png

Link to comment
Share on other sites

So uma coisa que pode ajudar a encontrar o erro, no código eu comentei seguinte linha:

smtp.EnableSsl = true;

e ao testar, mesmo no meu deu o seguinte erro:

http://img809.imageshack.us/img809/5219/99142088.png

Não será por aqui o problema ?

Pelo que vi na net existe um smtp authentication, o que é e para que serve isso? deixo aqui o link:

http://www.codeproject.com/kb/dotnet/SystemWeb_Mail_SMTP_AUTH.aspx

Se for proibido podem retirar...

Link to comment
Share on other sites

Não há problema com o link.

Tens mesmo de ter o SSL activado. O ideal era se conseguisses testar com o visual studio no Windows XP, com o debug, passo a passo, para ver qual comando falhava. Mas à partida não está nada de errado aí, se no windows 7 funciona, e no XP não, deve ser do XP, alguma configuração, firewall, etc

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Pois, foi isso que eu pensei, andei a pesquisar e encontrei todos os erros do smtp, e encontrei o meu, é o seguinte:

If neither the sending mail address nor

the recipient’s address are locally hosted by the server,

then the ISP’s servers may refuse to relay the message

on.

Que em português é :

Se nem o endereço de envio de email, nem

o endereço do destinatário está hospedado localmente pelo servidor,

os servidores do ISP podem recusar a retransmitir a mensagem

Vou instalar o studio no xp e verificar, já posto novidades..

Link to comment
Share on other sites

Já consegui, o problema está no:

smtp.EnableSsl = true;

Eu coloquei false e funcionou, mas acho que com o gmail tem de estar true, mas como não é esse o serviço de email que vai ser utilizado e esse não aceita ssl true, por isso foi fácil 😉

Muito obrigado pela ajuda, pena não ter conseguido por a funcionar com o gmail :S

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.