Функция отправки почты через стороннюю «MailTrap» работает на локальном компьютере, но не работает в Azure.C#

Место общения программистов C#
Ответить
Anonymous
 Функция отправки почты через стороннюю «MailTrap» работает на локальном компьютере, но не работает в Azure.

Сообщение Anonymous »

Я новичок в разработке, и это, по сути, мой первый проект. Поэтому я создал простую веб-страницу с формой, которая отправляет электронное письмо владельцу. Когда я ввожу данные и нажимаю кнопку Отправить, то на одной из картинок видно, что в консоли появляется Ошибка. Когда я продолжил исследование портала Azure в разделе «Сбои», выяснилось, что каждый раз, когда я пытаюсь отправить электронное письмо, программа выдает исключение ArgumentNullException (см. другой снимок экрана). Дело в том, что когда я пробую этот метод на своем локальном компьютере,

Код: Выделить всё

using MailKit.Net.Smtp;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using MimeKit;
using TheHandymanOfCapeCod.Core.Configuration;
using TheHandymanOfCapeCod.Core.Contracts;
using TheHandymanOfCapeCod.Core.Models.MailService;

namespace TheHandymanOfCapeCod.Core.Services
{
public class MailService : IMailService
{
private readonly MailSettings _mailSettings;
private readonly ILogger logger;

public MailService(
IOptions mailSettingsOptions,
ILogger _logger)
{
_mailSettings = mailSettingsOptions.Value;
logger = _logger;
}

public async Task SendMailAsync(MailData mailData)
{
try
{
using (MimeMessage emailMessage = new MimeMessage())
{
MailboxAddress emailFrom = new MailboxAddress(_mailSettings.SenderName, _mailSettings.SenderEmail);
emailMessage.From.Add(emailFrom);
MailboxAddress emailTo = new MailboxAddress(mailData.EmailToName, mailData.EmailToId);
emailMessage.To.Add(emailTo);

// you can add the CCs and BCCs here.
//emailMessage.Cc.Add(new MailboxAddress("Cc Receiver", "cc@example.com"));
//emailMessage.Bcc.Add(new MailboxAddress("Bcc Receiver", "bcc@example.com"));

emailMessage.Subject = mailData.EmailSubject;

BodyBuilder emailBodyBuilder = new BodyBuilder();
emailBodyBuilder.TextBody = mailData.EmailBody;

emailMessage.Body = emailBodyBuilder.ToMessageBody();
//this is the SmtpClient from the Mailkit.Net.Smtp namespace, not the System.Net.Mail one
using (SmtpClient mailClient = new SmtpClient())
{
await mailClient.ConnectAsync(_mailSettings.Server, _mailSettings.Port, MailKit.Security.SecureSocketOptions.StartTls);
await mailClient.AuthenticateAsync(_mailSettings.UserName, _mailSettings.Password);
await mailClient.SendAsync(emailMessage);
await mailClient.DisconnectAsync(true);
}
}

return true;

}
catch (Exception ex)
{
logger.LogError(ex, "Something went wrong!");
return false;
}
}
}
}
) работает нормально, и я не знаю, как выполнять отладку, когда он находится на сервере. Явно что-то работает не так. В нем говорится, что адрес параметра в MailboxAddress.ctor имеет значение null. (Ошибка отображается в Azure) (как это выглядит на веб-странице)
Я пытался отправить сообщение, но сообщение не прошло.

Подробнее здесь: https://stackoverflow.com/questions/786 ... al-machine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»