2015-11-19 2 views
1

Я пытаюсь понять, как из адреса используется в библиотеках System.Net.Mail.MailMessage From vs Credentials

Для аргументации я собираюсь использовать Google в качестве примера. Ниже вы найдете код, который я использую, чтобы отправить электронное письмо.

var message = new MailMessage(); 
message.To.Add(new MailAddress("[email protected]")); // replace with valid value 
message.From = new MailAddress("[email protected]"); // replace with valid value 
message.Subject = "Testing ASP.NET Email system"; 
message.Body = "This is my test email"; 
message.IsBodyHtml = true; 

using (var smtp = new SmtpClient()) 
{ 
     var credential = new NetworkCredential 
     { 
      UserName = "[email protected]", // replace with valid value 
      Password = "abc123" // replace with valid value 
     }; 
     smtp.Credentials = credential; 
     smtp.Host = "smtp.gmail.com"; 
     smtp.Port = 587; 
     smtp.EnableSsl = true; 
     await smtp.SendMailAsync(message); 
} 

Что я пытаюсь понять, почему мне нужно установить From address и в чем его суть. Когда вы отправляете электронное письмо, должны ли ваши учетные данные электронной почты регистрироваться с адресом электронной почты? Это означало бы, что я могу войти в систему как [email protected], но когда получатель получит электронное письмо, он скажет [email protected], если я положу john в качестве части From?

Как это работает?

ответ

2

От этого просто будет отображаться ваш почтовый клиент из электронной почты. Пока он находится на том же (суб) домен в качестве почтового сервера фактический, большинство клиентов позволит, в противном случае вы можете получить предупреждения, такие как это:

enter image description here

Причина вы можете отправить указать из-за того, что почтовые серверы не обязательно имеют «учетные записи» таким же образом, как и с размещенными поставщиками (gmail, hotmail и т. д.). Спецификатор до @ - это просто способ организации почтовых ящиков. Для исходящей почты это не требуется с технической точки зрения, поскольку фактическим отправителем является ваш почтовый сервер, а не ваш почтовый ящик.

Публичные почтовые серверы, скорее всего, предотвратят злонамеренное подделку адреса (т. Е. [email protected], вероятно, отклонит его запрос при попытке отправить с [email protected]), но подробности об этом я не знаю.

Например, вот отрывок из электронной почте я получил:

Поступила:. От mta.email.auspost.com.au (mta.email.auspost.com.au
[207.67. 38,247]) по mx.google.com с ESMTP ID
qg3si8833298pbb.100.2015.11.18.19.17.54

...

Поступила: по mta.email.auspost.com.au ид h9kvm4163hs8 для
< == snip == @ gmail.com>; Ср, 18 ноября 2015 21:01:47 -0600 (конверт из
)
От:. "Australia Post" <[email protected]>

(пример Gmail источник: http://www.groovypost.com/wp-content/uploads/2013/05/image20.png)

Смежные вопросы