0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Symfony ComponentAdvent Calendar 2023

Day 19

MIMEを扱うよ、"Mime"

Last updated at Posted at 2023-12-18

Symfony Component Advent Calendar 2023の19日目の記事です。

MIMEを扱うよ、"Mime"

Mimeは、MIMEを扱うためのコンポーネントです。

インストール

composer require symfony/mime

使い方 その1

use Symfony\Component\Mime\Email;

$email = new Email();
$email
    ->from('info@qiita.com')
    ->to('test@qiita.com')
    ->subject('テストメール')
    ->priority(Email::PRIORITY_HIGH)
    ->attachFromPath('/var/www/', 'hoge.png', 'image/png')
    ->text("お元気ですか?")
    ->html('<h1>お元気ですか?</h1>');

Mimeの使い方その1は、メールデータを作ることです。Emailオブジェクトを作って、それぞれの項目に合わせたメソッドを呼ぶことでメールデータが作成できます。

MIME(Multipurpose Internet Mail Extensions)とは、TCP/IPネットワーク上でやり取りする電子メールで、当初の規格で唯一記載することができたASCII英数字以外のデータ(各国語の文字、添付ファイルなど)を取り扱うことができるようにする拡張仕様。

なので、この仕様に則ったメールデータが作れます。

メールを送るにはMailerコンポーネントが必要です。

メールアドレスのバリデーションとして、equlias/email-validatorが必要になる場合があります。

composer require egulias/email-validator

使い方 その2

使い方その2は、『MIMEタイプ』も扱うことです。MIMEタイプから拡張子、ファイル内容からMIMEタイプを取得(推測)することができます。

use Symfony\Component\Mime\MimeTypes;

$mimeTypes = new MimeTypes();

// MIMEタイプから拡張子を取得
$extensions = $mimeTypes->getExtension('image/png'); // ['png']

// ファイルからMIMEタイプを推測
$mimeType = $mimeTypes->guessMimeType('/var/www/hoge.gif'); // 'image/gif

まとめ

今回はMIMEでした。ファイルアップロードなどの処理でMIMEタイプ判断したりなどファイルを扱う時にも使いますが、実はメールの作成でも役立ってるコンポーネントというのは知りませんでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?