저는 웹 프로그래밍에 익숙하지 않고 ASP.NET 코어를 사용하여 웹 사이트를 만들고 있으며 사용자가 이름, 전자 메일, 제목 및 메시지를 입력하는 표준 "연락처"페이지를 만들려고합니다. ASP.NET 코어는 아직 System.Net.Mail
이므로 아직 사용할 수 없습니다."저에게 연락하기"양식에 MailKit을 사용할 수 있습니까?
MailKit을 사용하여 전자 메일을 보낼 수 있지만 연락처 페이지에 전자 메일을 사용하는 방법을 알 수 없습니다. 나는 내 SMPT 서버를 사용하여 이메일을 보낼 수 있습니다
using (var client = new SmtpClient()) {
client.Connect ("smtp.friends.com", 587, false);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove ("XOAUTH2");
// Note: only needed if the SMTP server requires authentication
client.Authenticate ("joey", "password");
client.Send (message);
client.Disconnect (true);
이 코드를 사용하여 알아,하지만 분명히 내가 사이트를 사용하는 사용자의 기능이 나에게 이메일을 보낼 수 있어야합니다. 이를 위해 MailKit을 사용하는 방법이 있습니까? 아니면 다른 솔루션을 찾아야합니까? 감사.
편집 : 이것은 전자 메일을 성공적으로 보냈지 만 항상 나에게서 나에게 보낸 코드입니다.
public IActionResult SendEmail(Contact contact)
{
var emailMessage = new MimeMessage();
emailMessage.From.Add(new MailboxAddress(contact.Name, contact.Email));
emailMessage.To.Add(new MailboxAddress("myname", "myemail"));
emailMessage.Subject = contact.Subject;
emailMessage.Body = new TextPart("plain") { Text = contact.Message };
using (var client = new SmtpClient())
{
client.Connect("smtp-mail.outlook.com", 587);
client.Authenticate("myemail", "myemailpassword");
client.Send(emailMessage);
client.Disconnect(true);
}
return RedirectToAction("Index", "Home");
}
보낸 사람을 내 주소로 설정하려고 시도했지만 작동하지 않는 것 같습니다. 나는 대신 yahoo smtp 서버를 사용하기로 결정했지만, 이제는 "보낸 사람 주소"가 확인되지 않았다는 오류가 표시됩니다. "from"이 outlook이고 stmp 서버가 yahoo 인 것이 중요합니까? "보낸 사람"섹션에 야후 이메일을 하드 코딩하면 작동합니다. – ecain
스팸을 최소화하는 SMTP 서버의 기능입니다. 다른 서버를 시도하는 것 외에 다른 방법을 제안 할 수는 없습니다. – jstedfast