ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
C# gmail отправка письма, ошибка |

26.05.2010, 15:48
|
|
Участник форума
Регистрация: 29.04.2010
Сообщений: 109
Провел на форуме: 160508
Репутация:
9
|
|
C# gmail отправка письма, ошибка
Код:
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;
}
}
Код:
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
|
|
|

26.05.2010, 16:46
|
|
Участник форума
Регистрация: 29.04.2010
Сообщений: 109
Провел на форуме: 160508
Репутация:
9
|
|
вот такой пример есть, пишет "не допустимый знак в заголовке"
Код:
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());
}
|
|
|

26.05.2010, 18:40
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
.NET учитывает имя компьютера в домене отправителя, который передается во время приветствия.
Можно попробовать указывать домен при инициализации полей Sender, From,
однако давать имя компьютеру на русском - однозначно зло.
Попробуй изменить имя компьютера с русских букв на англ.
|
|
|

26.05.2010, 19:03
|
|
Участник форума
Регистрация: 29.04.2010
Сообщений: 109
Провел на форуме: 160508
Репутация:
9
|
|
Попробуй изменить имя компьютера с русских букв на англ.
изменил в обоих вариантах ошибка "Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available"
|
|
|

26.05.2010, 20:26
|
|
Участник форума
Регистрация: 09.02.2009
Сообщений: 229
Провел на форуме: 2856245
Репутация:
338
|
|
Попробуй порт 465 во втором примере, но там защищённое соединение и требуется проверка подлинности, а вот на других почтовиках ведь нормально отсылает?
Последний раз редактировалось KATYA; 26.05.2010 в 20:28..
|
|
|

26.05.2010, 20:41
|
|
Познающий
Регистрация: 07.08.2009
Сообщений: 85
Провел на форуме: 705829
Репутация:
53
|
|
SSl - true
587 порт
|
|
|

26.05.2010, 20:42
|
|
Участник форума
Регистрация: 09.02.2009
Сообщений: 229
Провел на форуме: 2856245
Репутация:
338
|
|
Сообщение от noxjoker
SSl - true
587 порт
Этот порт есть в примере, у меня пашет 
Последний раз редактировалось KATYA; 26.05.2010 в 20:45..
|
|
|

26.05.2010, 20:45
|
|
Участник форума
Регистрация: 09.02.2009
Сообщений: 229
Провел на форуме: 2856245
Репутация:
338
|
|
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);//отправка
}
}
}
Вот так всё пашет  Юзай с пользой, кодер!
Даже ещё сейчас проверю разок!
Работает, если нет то не знаю в чём дело 
Последний раз редактировалось KATYA; 26.05.2010 в 20:50..
|
|
|

26.05.2010, 20:50
|
|
Участник форума
Регистрация: 09.02.2009
Сообщений: 229
Провел на форуме: 2856245
Репутация:
338
|
|
Вопрос: ограничение на отпраку писем через smtp в гугле, в минуту в час с ip?
|
|
|

26.05.2010, 20:59
|
|
Участник форума
Регистрация: 29.04.2010
Сообщений: 109
Провел на форуме: 160508
Репутация:
9
|
|
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(htmlvi ew + 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());
}
этот пример работает только надо имя компа английсское..
а кто то знает как это обойти?
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|