C# кодируют для отправки электронного письма, не зная очень о конфигурации сервера?

Для чего у вас есть параметр $ image? Это не указано в вашем axios.post.

public function store(Request $request)
{

    $category = new Category();

    $input = $this->safeInput($request);

    $category->fill($input);

    dd($this->postImage($request));

    $slug = $category->slug($category->title);
    $category->slug = $slug;

    if($request->has('active'))
    {
        $category->active = 1;
    }else{
        $category->active = 0;
    }

    $category_order = $category->order_number();
    $category->order = $category_order;

    $category->save();
}

public function postImage($request)
{

    if($request->hasFile('image'))
    {
        $names = [];
        foreach($request->file('image') as $image)
        {
            $destinationPath = 'product_images/category/';
            $filename = $image->getClientOriginalName();
            $image->move($destinationPath, $filename);
            array_push($names, $filename);          
        }

        $image = json_encode($names);
        return $image;
    }
}

9
задан Jonathan 20 January 2009 в 21:24
поделиться

5 ответов

Лучший ответ - то, если Вы ничего не знаете до живой, можно ли переместить все настройки в web.config? Это позволит конфигурацию вплоть до последней минуты. Ниже некоторый код для дампа в web.config файл. Я подверг бы сомнению относительно того, почему у Вас нет доступа к этой информации хотя

<system.net>
    <mailSettings>
      <smtp from="you@yourdomain.com">
        <network host="SMTP SERVER ADDRESS" port="25"
         userName="USERNAME" password="PASSWORD">
      </smtp>
    </mailSettings>
  </system.net>
1
ответ дан 4 December 2019 в 14:32
поделиться

Добавьте это к своему web.config (ссылка MSDN здесь):

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="jdoe@example.com">
            <network host="localhost" port="25" />
        </smtp>
    </mailSettings>
</system.net>

Используя SmtpClient, не указывая параметры конфигурации будет использовать значения от web.config:

MailMessage msg = new MailMessage(...);
// build message contents
SmtpClient client = new SmtpClient();
client.Send(msg);
11
ответ дан 4 December 2019 в 14:32
поделиться

Как альтернатива: Если Вы не хотите полагаться на конфигурацию сервера, и сделать это программно Вы могли бы всегда делать это:

MailMessage mail = new MailMessage() {
    To = "someone@somewhere",
    From = "someone@somewhere",
    Subject = "My Subject",
    Body = "My message"
};

SmtpClient client = new SmtpClient("SMTP Server Address");
    // Naturally you change the "SMTP Server Address" to the
    // actual SMTP server address
client.Send(mail);

Но я предлагаю, чтобы Вы засунули его в web.config файл (который может быть настроен через веб-Инструмент конфигурирования ASP.NET также).

0
ответ дан 4 December 2019 в 14:32
поделиться

Если Ваша конфигурация SMTP корректна, просто сделайте это:

MailMessage mail = new MailMessage(); 

mail.To = "To"; 
mail.From = "From"; 
mail.Subject = "Subject";     
mail.Body = "Body"; 

SmtpMail.SmtpServer = "localhost"; 
SmtpMail.Send(mail); 
0
ответ дан 4 December 2019 в 14:32
поделиться

Я ответил на вопрос, подобный этому не к давно. Можно просмотреть его здесь. Используя papercut, можно протестировать приложение, не зная или с помощью фактического производства smtp сервер.

Затем во время тестирования можно просто установить хост локальной машины, которая выполняет papercut в конфигурации приложения/сети. Поэтому это может быть изменено однажды перемещающийся в производство.

Papercut покажет Вам электронные письма, которые были посланы и также содержание.

2
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: