반응형
SmtpClient를 사용하여 C#을 통해 HTML 전자 메일 보내기
HTML 이메일을 어떻게 보내나요?저는 이 답변의 코드를 사용하여 이메일을 보냅니다.SmtpClient
그러나 항상 일반 텍스트이므로 아래 예제 메시지의 링크는 형식이 지정되지 않습니다.
<p>Welcome to SiteName. To activate your account, visit this URL:
<a href="http://SiteName.com/a?key=1234">http://SiteName.com/a?key=1234</a>.
</p>
보내는 전자 메일 메시지에서 HTML을 활성화하려면 어떻게 해야 합니까?
제가 하는 일은 다음과 같습니다.
MailMessage mail = new MailMessage(from, to, subject, message);
mail.IsBodyHtml = true;
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);
메일 메시지 html을 true로 설정합니다.mail.IsBodyHtml = true;
저는 그것이 다음과 같은 것이었다고 믿습니다.
mailObject.IsBodyHtml = true;
IsBodyHtml = true
의심할 여지 없이 가장 중요한 부분입니다.
그러나 텍스트/일반 부분과 대체 구성된 텍스트/html 부분이 모두 포함된 이메일을 제공하려면 다음을 사용하는 것도 가능합니다.AlternateView
클래스:
MailMessage msg = new MailMessage();
AlternateView plainView = AlternateView
.CreateAlternateViewFromString("Some plaintext", Encoding.UTF8, "text/plain");
// We have something to show in real old mail clients.
msg.AlternateViews.Add(plainView);
string htmlText = "The <b>fancy</b> part.";
AlternateView htmlView =
AlternateView.CreateAlternateViewFromString(htmlText, Encoding.UTF8, "text/html");
msg.AlternateViews.Add(htmlView); // And a html attachment to make sure.
msg.Body = htmlText; // But the basis is the html body
msg.IsBodyHtml = true; // But the basis is the html body
메일 본문의 올바른 인코딩을 적용합니다.
mail.IsBodyHtml = true;
아이디어가 있습니다. 프로젝트에 사용자를 위한 옵션으로 html로 이메일을 보내기 위한 확인란을 추가하고 이 코드를 추가하여 활성화할 수 있습니다.
MailMessage mail = new MailMessage(from, to, subject, message);
if(checkBox1.CheckState == CheckState.Checked )
{
mail.IsBodyHtml = true;
}
SmtpClient client = new SmtpClient("localhost");
client.Send(mail);
Mailkit를 사용하는 경우 메시지 본문에 TextBody, HtmlBody 및 Both를 모두 사용할 수 있습니다.그냥 이 코드를 쓰세요.도움이 될 것입니다
MimeMessage mailMessage = new MimeMessage();
mailMessage.From.Add(new MailboxAddress(senderName, sender@address.com));
mailMessage.Sender = new MailboxAddress(senderName, sender@address.com);
mailMessage.To.Add(new MailboxAddress(emailid, emailid));
mailMessage.Subject = subject;
mailMessage.ReplyTo.Add(new MailboxAddress(replyToAddress));
mailMessage.Subject = subject;
var builder = new BodyBuilder();
builder.HtmlBody = "Hello There";
mailMessage.Body = builder.ToMessageBody();
try
{
using (var smtpClient = new SmtpClient())
{
smtpClient.Connect("HostName", "Port", MailKit.Security.SecureSocketOptions.None);
smtpClient.Authenticate("user@name.com", "password");
smtpClient.Send(mailMessage);
Console.WriteLine("Success");
}
}
catch (SmtpCommandException ex)
{
Console.WriteLine(ex.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
언급URL : https://stackoverflow.com/questions/1329922/send-html-email-via-c-sharp-with-smtpclient
반응형
'programing' 카테고리의 다른 글
선택을 취소하는 가장 좋은 방법선택을 취소하는 가장 좋은 방법선택을 취소하는 가장 좋은 방법 (0) | 2023.08.18 |
---|---|
"col-xs-*"이 Bootstrap 4에서 작동하지 않음 (0) | 2023.08.18 |
MySQL JSON_MERGE / REPLACE.값을 실제로 업데이트하고 병합하지 않는 방법 (0) | 2023.08.13 |
쿼리 중에 MySQL 서버에 대한 연결 끊김' 오류가 자주 발생하는 이유(시간 초과 발생, 쿼리 전 ping) (0) | 2023.08.13 |
Swift UI @ 바인딩 초기화 (0) | 2023.08.13 |