2011-07-09 27 views
7

Tôi đang sử dụng SwiftMailer để gửi email từ đơn đăng ký của mình.Làm thế nào để thay đổi tên văn bản của người gửi khi gửi thư bằng Swift_Message?

Tất cả hiện đang hoạt động tốt. Bây giờ tôi cần có khả năng thay đổi văn bản của người gửi động. Đoạn mã dưới đây và đoạn tiếp theo nên hy vọng làm rõ những gì tôi có ý nghĩa.

Hiện nay, mã của tôi trông như thế này:

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

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

Các $ từ biến chứa địa chỉ email của người gửi - đó là [email protected]

Tuy nhiên, tôi muốn gửi tiêu hóa hàng ngày (ví dụ) cho các thực thể khác nhau (ví dụ diễn đàn, nhóm vv), vì vậy tôi muốn có thể đặt tên văn bản của người gửi là 'thành viên diễn đàn ABC hàng ngày', mặc dù người gửi vẫn là [email protected] Tôi nhận thấy rằng linkedin đang làm một cái gì đó tương tự - họ gửi các tiêu hóa khác nhau dưới tên người gửi khác nhau, mặc dù người gửi luôn là [email protected]

Tên mặc định cho [email protected] là 'System Mailer'. Ngẫu nhiên, tôi đang sử dụng Google Apps làm nhà cung cấp dịch vụ gửi thư của mình. Tôi không thể thiết lập các tài khoản người dùng khác nhau, vì người dùng có thể tạo các diễn đàn của riêng họ, v.v.

Có cách nào tôi có thể tự động (tức là qua mã) xác định tên người gửi, mặc dù sử dụng cùng một email người gửi địa chỉ nhà?

Trả lời

25

Bạn chỉ cần chuyển $ từ dưới dạng mảng.

$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 ... 
} 

Nơi bạn thay đổi $ from_name cho mỗi người gửi thư của bạn.

Hy vọng điều đó sẽ hữu ích!

+0

Bạn có thể chỉ cho tôi một phần trong các tài liệu nơi này xuất phát từ ?. Nếu điều này làm việc - tôi sẽ mãi mãi trong khoản nợ của bạn: p! – oompahloompah

+0

http://swiftmailer.org/docs/sending.html - Xem đoạn mã đầu tiên. Bạn không cần phải mắc nợ. Chỉ cần upvote và chấp nhận nếu nó đã giúp bạn :) – Sukumar

+0

Thanks !. Không thể upvote, nhưng tôi chấp nhận câu trả lời của bạn. – oompahloompah

1

bạn cũng có thể sử dụng

$message = Swift_Message::newInstance() 
      ->setFrom($email, $sender_name) 
      ->setTo($to) 
      ->setSubject($subject) 
      ->setBody($content); 
+0

Chăm sóc để xây dựng? – RamenChef

Các vấn đề liên quan