使用ASP.NET Core Web API从Angular 6发送电子邮件的步骤如下:
using Microsoft.AspNetCore.Mvc;
using System.Net.Mail;
namespace YourNamespace.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class EmailController : ControllerBase
{
[HttpPost]
public IActionResult SendEmail([FromBody] EmailModel emailModel)
{
try
{
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.From = new MailAddress("your-email@example.com");
mailMessage.To.Add(emailModel.To);
mailMessage.Subject = emailModel.Subject;
mailMessage.Body = emailModel.Body;
using (SmtpClient smtpClient = new SmtpClient("your-smtp-server"))
{
smtpClient.Send(mailMessage);
}
}
return Ok("Email sent successfully!");
}
catch (Exception ex)
{
return BadRequest($"Failed to send email: {ex.Message}");
}
}
}
public class EmailModel
{
public string To { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
}
}
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class EmailService {
private apiUrl = 'your-api-url';
constructor(private http: HttpClient) { }
sendEmail(emailModel: EmailModel) {
return this.http.post(this.apiUrl + '/email', emailModel);
}
}
export class EmailModel {
to: string;
subject: string;
body: string;
}
import { Component } from '@angular/core';
import { EmailService, EmailModel } from './email.service';
@Component({
selector: 'app-email',
template: `
<h1>Send Email</h1>
<form (ngSubmit)="sendEmail()">
<input type="email" [(ngModel)]="emailModel.to" name="to" placeholder="To" required>
<input type="text" [(ngModel)]="emailModel.subject" name="subject" placeholder="Subject" required>
<textarea [(ngModel)]="emailModel.body" name="body" placeholder="Body" required></textarea>
<button type="submit">Send</button>
</form>
`
})
export class EmailComponent {
emailModel: EmailModel = new EmailModel();
constructor(private emailService: EmailService) { }
sendEmail() {
this.emailService.sendEmail(this.emailModel)
.subscribe(
response => {
console.log(response);
// 处理成功发送电子邮件的逻辑
},
error => {
console.error(error);
// 处理发送电子邮件失败的逻辑
}
);
}
}
请注意,上述代码中的"your-email@example.com"和"your-smtp-server"需要替换为你自己的电子邮件地址和SMTP服务器地址。
这是一个基本的示例,你可以根据自己的需求进行修改和扩展。在实际应用中,你可能还需要添加身份验证、错误处理和其他功能。
推荐的腾讯云相关产品:腾讯云邮件推送(https://cloud.tencent.com/product/ses)
领取专属 10元无门槛券
手把手带您无忧上云