React Native 发送邮件正文并排显示,如何实现内容逐行换行排列?
问题根因
你当前直接将未编码的内容拼接进mailto链接,换行符没有被正确转换为邮件客户端可识别的格式,导致所有内容挤在同一行,同时未编码的用户输入也可能存在特殊字符导致链接失效的风险。
解决方法
你只需要调整邮件正文的构造逻辑,加入换行符并对URL参数做编码处理即可:
- 在设备信息和用户评论之间插入换行符
\n,用户在多行输入框中输入的换行也会自带\n,编码后可被正常识别 - 对邮件主题、正文这类参数做URL编码,确保特殊字符被正确转义
- 邮件地址数组显式转为逗号分隔的字符串,避免隐式转换的兼容性问题
修改后的核心代码
const [comment, setComment] = useState('') let brand = DeviceInfo.getBrand(); let model = DeviceInfo.getModel() // 构造正文,设备信息单独占一行,后面接用户评论 const body = `${brand} ${model}\n${comment}` const emailAddress = ['example@gmail.com', 'example2@gmail.com']; // 编码参数,拼接链接 const emailStr = emailAddress.join(',') const subject = encodeURIComponent('Error') const encodedBody = encodeURIComponent(body) const url = `mailto:${emailStr}?subject=${subject}&body=${encodedBody}`;
修改后生成的链接会自动将\n转换为邮件正文可识别的%0A换行符,设备信息、用户输入的多行内容都会逐行展示,符合你预期的效果。
内容的提问来源于stack exchange,提问作者SoF
相关产品推荐
相关产品推荐

