この記事について
Appleのサイトには下記の様に書かれていた のですが、これ通りにはできず、悩んだので、ココに記載します。
SMTP information for the outgoing iCloud Mail server
- Server name: smtp.mail.me.com
- SSL Required: Yes
If you see an error message when using SSL, try using TLS or STARTTLS instead.- Port: 587
- SMTP Authentication Required: Yes
- Username: Your full iCloud Mail email address (for example, johnappleseed@icloud.com, not johnappleseed)
- Password: Use the app-specific password that you generated when you set up the incoming mail server.
結論
.envに下記の様な設定を入れることで送信できました。
# email
MAIL_MAILER=smtp
MAIL_HOST=smtp.mail.me.com # ホスト
MAIL_PORT=587 # ポート番号
MAIL_USERNAME=metis_selen@icloud.com
MAIL_PASSWORD=ebhlnzfiyrpqjjeu #ハイフンなし
MAIL_ENCRYPTION=tls #sslではつながらず、tlsで接続しました。
MAIL_FROM_ADDRESS=metis@selen.tokyo # 送信元メールアドレス
MAIL_FROM_NAME="${APP_NAME}" # 差出人名前
- ユーザー名は
icloud.com
のものを使用する - パスワードはハイフンなしで使用する
- tlsを使用する
- 送信元メールアドレスにカスタムドメインを設定するとそのドメインから送信去れる
-
php artisan config:cache
コマンドで.env
を編集した後はキャッシュをクリアする
そんなところです。
色々試行錯誤して接続できましたが、
蛇足
取得したドメインのDNSレコードを変更し、ICroudからカスタムドメインのメールが受信できるように設定していることを前提とします。
APP用パスワードを発行方法
下記のURLから行う。
サインインし、APP用パスワードの詳細を表示する。
すると下記の様な画面が開く。
+ボタンから追加できる。
適当な名前をつけパスワードが発行する。
この発行されるパスワードのハイフンなしで設定します。
ハイフンなくていいとかどこにも書いてないんですが・・・
エラー
ちなみにtsl
ではなくssl
を使用すると下記の様なエラーが発生しました。
Connection could not be established with host smtp.mail.me.com :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:ssl3_get_record:wrong version number {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.mail.me.com :stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:ssl3_get_record:wrong version number at C:\\Users\\selen.domein\\Documents\\02_project\\test\\laravel_react_template\\vendor\\swiftmailer\\swiftmailer\\lib\\classes\\Swift\\Transport\\StreamBuffer.php:261)
[stacktrace]