Возможно, проблема в конфигурации почтового сервера, чтобы избежать подобных проблем или вам не нужно беспокоиться о проблеме с почтовым сервером, я рекомендую вам использовать PHPMailer , это плагин у которого есть все необходимое для отправки почты, единственное, что вы должны учесть, это иметь SMTP-порт (порт: 25 и 465), включен
require_once 'PHPMailer/PHPMailer.php';
require_once '/servicios/PHPMailer/SMTP.php';
require_once '/servicios/PHPMailer/Exception.php';
$mail = new \PHPMailer\PHPMailer\PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'correo@gmail.com';
$mail->Password = 'contrasenia';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
//Recipients
$mail->setFrom('correo@gmail.com', 'my name');
$mail->addAddress('destination@correo.com');
//Attachments
$mail->addAttachment('optional file'); // Add files, is optional
//Content
$mail->isHTML(true);// Set email format to HTML
$mail->Subject = utf8_decode("subject");
$mail->Body = utf8_decode("mail content");
$mail->AltBody = '';
$mail->send();
}
catch (Exception $e){
$error = $mail->ErrorInfo;
}
Эта строка:
private dynamic defaultReminder =
reminder.TimeSpanText[TimeSpan.FromMinutes(15)];
Вы не можете использовать переменную экземпляра для инициализации другой переменной экземпляра . Зачем? Поскольку компилятор может их переупорядочить, нет гарантии, что reminder
будет инициализирован до defaultReminder
, поэтому вышеприведенная строка может выбросить NullReferenceException
.
Вместо этого, просто используйте:
private dynamic defaultReminder = TimeSpan.FromMinutes(15);
В качестве альтернативы настройте значение в конструкторе:
private dynamic defaultReminder;
public Reminders()
{
defaultReminder = reminder.TimeSpanText[TimeSpan.FromMinutes(15)];
}
. Более подробная информация об этой ошибке компилятора в MSDN - Ошибка компилятора CS0236 .
Вам нужно поместить этот код в конструктор вашего класса:
private Reminders reminder = new Reminders();
private dynamic defaultReminder;
public YourClass()
{
defaultReminder = reminder.TimeSpanText[TimeSpan.FromMinutes(15)];
}
Причина в том, что вы не можете использовать одну переменную экземпляра для инициализации другой с помощью инициализатора поля, поскольку выполнение порядок инициализаторов полей не определен.
вы можете использовать это как
private dynamic defaultReminder => reminder.TimeSpanText[TimeSpan.FromMinutes(15)];
partial class
с «частями» в нескольких файлах порядок инициализаторов поля неясен, но это также относится к полямstatic
!) – Jeppe Stig Nielsen 18 April 2016 в 20:18static
вместо полей экземпляра. – Jeppe Stig Nielsen 18 April 2016 в 20:33