10

SwiftMailerを使用してアプリケーションからメールを送信しています。

これまでのところ、すべて正常に機能しています。送信者のテキストを動的に変更できるようにする必要があります。以下のコードスニペットと次の段落で、私が何を意味するのかが明確になるはずです。

現在、私のコードは次のようになっています。

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

$ from変数には、送信者の電子メールアドレス(sysmail@mydomain.com)が含まれています。

ただし、さまざまなエンティティ(フォーラム、グループなど)の日次ダイジェストを送信したいので、送信者が送信者であっても、送信者の名前テキストを「フォーラムABCメンバーの日次ダイジェスト」として設定できるようにします。まだsysmailer@mydomain.comです。LinkedInは似たようなことをしていることに気づきました。送信者は常にgroup-digests@linkedin.comですが、異なる送信者名で異なるダイジェストを送信します。

sysmailer@mydomain.comのデフォルト名は「SystemMailer」です。ちなみに、私はメールサービスプロバイダーとしてGoogleAppsを使用しています。ユーザーは独自のフォーラムなどを作成できるため、別のユーザーアカウントを設定することは実用的ではありません。

同じ送信者の電子メールアドレスを使用していても、動的に(つまりコードを介して)送信者名を指定できる方法はありますか?

4

2 に答える 2

29

$fromを配列として渡す必要があります。

$from = array($from_email => $from_name);

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

メーラーごとに$from_nameを変更する場所。

それが役に立てば幸い!

于 2011-07-09T11:56:32.777 に答える
2

あなたも使うことができます

$message = Swift_Message::newInstance()
           ->setFrom($email, $sender_name)
           ->setTo($to)
           ->setSubject($subject)
           ->setBody($content);
于 2016-11-21T15:01:36.083 に答える