Code: public static bool SendEmail( string pGmailEmail, string pGmailPassword, string pTo, string pSubject, string pBody, System.Web.Mail.MailFormat pFormat, string pAttachmentPath) { try { System.Web.Mail.MailMessage myMail = new System.Web.Mail.MailMessage(); myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpserver", "smtp.gmail.com"); myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "465"); myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendusing", "2"); //sendusing: cdoSendUsingPort, value 2, for sending the message using //the network. //smtpauthenticate: Specifies the mechanism used when authenticating //to an SMTP //service over the network. Possible values are: //- cdoAnonymous, value 0. Do not authenticate. //- cdoBasic, value 1. Use basic clear-text authentication. //When using this option you have to provide the user name and password //through the sendusername and sendpassword fields. //- cdoNTLM, value 2. The current process security context is used to // authenticate with the service. myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //Use 0 for anonymous myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendusername", pGmailEmail); myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendpassword", pGmailPassword); myMail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true"); myMail.From = pGmailEmail; myMail.To = pTo; myMail.Subject = pSubject; myMail.BodyFormat = pFormat; myMail.Body = pBody; //if (pAttachmentPath.Trim() != "") //{ // MailAttachment MyAttachment = // new MailAttachment(pAttachmentPath); // myMail.Attachments.Add(MyAttachment); // myMail.Priority = System.Web.Mail.MailPriority.High; //} System.Web.Mail.SmtpMail.SmtpServer = "smtp.gmail.com:465"; System.Web.Mail.SmtpMail.Send(myMail); return true; } catch (Exception ex) { throw; } } Code: SendEmail("nickname@gmail.com", "password", "nick@bk.ru", "This is email subject", "This is email body", System.Web.Mail.MailFormat.Text, ""); ошибка Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available
вот такой пример есть, пишет "не допустимый знак в заголовке" Code: SmtpClient SmtpServer = new SmtpClient(); SmtpServer.Credentials = new System.Net.NetworkCredential("nick@gmail.com", "passs"); SmtpServer.Port = 587; SmtpServer.Host = "smtp.gmail.com"; SmtpServer.EnableSsl = true; mail = new MailMessage(); String[] addr = TextBox1.Text.Split(','); try { mail.From = new MailAddress("nick@gmail.com", "Developers", System.Text.Encoding.UTF8); Byte i; for( i = 0;i< addr.Length; i++) mail.To.Add(addr[i]); mail.Subject = TextBox3.Text; mail.Body = TextBox4.Text; if(ListBox1.Items.Count != 0) { for(i = 0;i<ListBox1.Items.Count;i++) mail.Attachments.Add(new Attachment(ListBox1.Items[i].ToString())); } //LinkedResource logo = new LinkedResource(path); //logo.ContentId = "Logo"; string htmlview; htmlview = "<html><body><table border=2><tr width=100%><td><img src=cid:Logo alt=companyname /></td><td>MY COMPANY DESCRIPTION</td></tr></table><hr/></body></html>"; AlternateView alternateView1 = AlternateView.CreateAlternateViewFromString(htmlview + TextBox4.Text, null, MediaTypeNames.Text.Html); //alternateView1.LinkedResources.Add(logo); mail.AlternateViews.Add(alternateView1); mail.IsBodyHtml = true; mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; mail.ReplyTo = new MailAddress(TextBox1.Text); SmtpServer.Send(mail); } catch (Exception ex){ MessageBox.Show(ex.ToString()); }
.NET учитывает имя компьютера в домене отправителя, который передается во время приветствия. Можно попробовать указывать домен при инициализации полей Sender, From, однако давать имя компьютеру на русском - однозначно зло. Попробуй изменить имя компьютера с русских букв на англ.
изменил в обоих вариантах ошибка "Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available"
Попробуй порт 465 во втором примере, но там защищённое соединение и требуется проверка подлинности, а вот на других почтовиках ведь нормально отсылает?
PHP: using System.Web; using System.Net; using System.Net.Mail; using System.Net.Mime; namespace qwe { class qwer { static void Main() { //Авторизация на SMTP сервере SmtpClient Smtp = new SmtpClient("smtp.gmail.com", 587); Smtp.Credentials = new NetworkCredential("iuser@gmail.com", "passs"); Smtp.EnableSsl = true; //Формирование письма MailMessage Message = new MailMessage(); Message.From = new MailAddress("iuser@gmail.com");//тоже что и iuser@gmail.com Message.To.Add(new MailAddress("куда")); Message.Subject = "tetet"; Message.Body = "354"; Smtp.Send(Message);//отправка } } } Вот так всё пашет Юзай с пользой, кодер! Даже ещё сейчас проверю разок! Работает, если нет то не знаю в чём дело