我需要能够从外部网站发送自动电子邮件,我们应该使用此功能来执行另一个项目。
public class EmailController : ApiController
{
[HttpPost]
public void Send(SendMailModel mailObj)
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["senderEmail"], mailObj.SendingApp);
mail.To.Add(new MailAddress(mailObj.SendTo));
mail.Subject = mailObj.Subject;
mail.Body = mailObj.Body;
// more code
}
}
此电子邮件控制器位于以下网站:services.domain.dev
,我们的项目部署在project.domain.dev
上。我应该怎么称呼它发送电子邮件?我正在考虑在前端尝试调用AJAX,但它没有路由URL,我不允许编辑这个项目。有没有办法在后端与部署在同一服务器上的单独项目进行通信?
更新
public async Task<IHttpActionResult> SendEmail(string message)
{
//Hosted web API REST Service base url
string Baseurl = "http://services.domain.dev/";
SendMailModel mail = new SendMailModel();
mail.SendTo = "test@email.com";
mail.Body = message;
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var stringContent = new StringContent(JsonConvert.SerializeObject(mail), Encoding.UTF8, "application/json");
HttpResponseMessage Res = await client.PostAsync("api/Email/Send", stringContent);
//Checking the response is successful or not which is sent using HttpClient
if (Res.IsSuccessStatusCode)
return Ok(true);
return Ok(false);
}
}
我一直试图用它来与其他控制器通信,但我没有运气。有没有办法在不使用异步的情况下与另一个控制器通信?
答案 0 :(得分:0)
原来我的功能是正确的。我连接的电子邮件API只允许将电子邮件发送到开发帐户,因此在我将其发送到我的开发电子邮件之前,我无法收到它。